跳轉至

聊天伺服器連接

Hive SDK 聊天功能使用 WebSocket 通信 與 Hive 聊天套接字伺服器。因此,要使用 Hive SDK 聊天功能,您必須首先參考以下指南以連接到 Hive 聊天套接字伺服器。

連接請求

要連接到聊天,請調用Chat類的connect方法。

Warning

Hive SDK 聊天功能只能由使用 Hive SDK 認證功能登錄的用戶(包括訪客帳戶)使用,並且已獲發 PlayerID

using hive;

Chat.connect((ResultAPI result) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});
#include "HiveChat.h"

FHiveChat::Connect(FHiveChatOnResultDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
    if (Result.IsSuccess()) {
        // API Call Success
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

Chat::connect([=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import com.hive.Chat;
import com.hive.ResultAPI;

Chat.connect(object : Chat.ConnectListener {
    override fun onResult(result: ResultAPI) {
        if (result.isSuccess) {
            // API Call Success
        }
    }
})
import com.hive.Chat;

Chat.connect(result -> {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import HIVEService

ChatInterface.connect { result in
    if result.isSuccess() {
        // API Call Success
    }
}
#import "HIVEService.h"

[HiveChat connectWithHandler:^(HIVEResultAPI * result) {
    if ([result isSuccess]) {
        // API Call Success
    }
}];

重新連接請求

聊天連線可能會因網路環境或應用程式狀態變化而暫時中斷。

自動重新連線請求

發生以下情況時,SDK 會自動開始重新連線。

  • 網路連線暫時中斷時
  • 應用程式從背景狀態返回前景時
  • 因伺服器暫時性異常等原因導致連線終止時

自動重新連線開始時,會觸發 OnConnectStarted 事件。

手動請求重新連線

若要手動重新連線,請呼叫 Chat.connect()

重新連線時自動加入頻道

手動重新連線與自動重新連線時,系統只會自動嘗試重新加入先前參與過且非 PUBLIC 的頻道。PUBLIC 頻道不會自動重新加入。若已離開 PUBLIC 頻道,請在遊戲中查詢 PUBLIC 頻道清單後重新加入。

斷線請求

若要中斷聊天連線,請呼叫 Chat 類別的 disconnect() 方法。

Note

当应用用户帐户注销时,聊天断开请求会自动执行。

using hive;

Chat.disconnect((ResultAPI result) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});
#include "HiveChat.h"

FHiveChat::Disconnect(FHiveChatOnResultDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
    if (Result.IsSuccess()) {
        // API Call Success
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

Chat::disconnect([=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import com.hive.Chat;
import com.hive.ResultAPI;

Chat.disconnect(object : Chat.DisconnectListener {
    override fun onResult(result: ResultAPI) {
        if (result.isSuccess) {
            // API Call Success
        }
    }
})
import com.hive.Chat;

Chat.disconnect(result -> {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import HIVEService

ChatInterface.disconnect { result in
    if result.isSuccess() {
        // API Call Success
    }
}
#import "HIVEService.h"

[HiveChat disconnectWithHandler:^(HIVEResultAPI * result) {
    if ([result isSuccess]) {
        // API Call Success
    }
}];

檢查連接狀態

若要確認應用程式使用者目前是否已連接至聊天,請呼叫 Chat 類別的 isConnected 方法。

using hive;

Boolean isConnected = Chat.isConnected();
#include "HiveChat.h"

bool IsConnected = FHiveChat::IsConnected();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

bool isConnected = Chat::isConnected();
import com.hive.Chat;

val isConnected = Chat.isConnected()
import com.hive.Chat;

Boolean isConnected = Chat.isConnected();
import HIVEService

let isConnected = ChatInterface.isConnected()
#import "HIVEService.h"

bool isConnected = [ChatInterface isConnected];

連接事件管理

Hive 聊天插座伺服器檢測連接狀態並持續將狀態變更事件傳遞給應用程式。欲了解詳細的事件處理方法,請參考事件管理 > 連接事件文件。