跳轉至

聊天伺服器連接

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

連接請求

要連接到聊天,請調用Chat類的connect方法。此時,您可以將字符串值作為extraData參數傳遞,以提供額外的信息。例如,如果您將應用程序用戶的暱稱字符串(由應用程序的數據庫管理)作為額外信息傳遞,它可以用作聊天窗口中的聊天暱稱,或用於實現進入事件消息,例如“~已進入。”當進入頻道時。

以下是一段请求聊天连接的示例代码。

Warning

Hive SDK 聊天功能僅限於使用 Hive SDK 認證功能登錄的用戶(包括訪客帳戶)使用,並且已獲得 PlayerID

using hive;

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

FString ExtraData = TEXT("EXTRA_DATA");

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

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

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

String extraData = "EXTRA_DATA";
Chat.connect(extraData, result -> {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import HIVEService

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

NSString *extraData = @"EXTRA_DATA";
[HiveChat connectWithExtraData:extraData handler:^(HIVEResultAPI * result) {
    if (result.isSuccess) {
        // API Call Success
    }
}];

斷線請求

要斷開聊天,請調用Chat類的disconnect()方法。以下是斷開聊天的示例代碼。

Note

當應用程序用戶帳戶登出時,聊天斷開請求會自動執行。

using hive;

Chat.disconnect((ResultAPI result) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});

```cpp

include "HiveChat.h"

FHiveChat::Disconnect(FHiveChatOnResultDelegate::CreateLambda(this { 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) {
    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 會檢測聊天套接字伺服器的連接狀態,並持續將狀態變更事件傳遞給應用程式。欲了解詳細的事件處理方法,請參閱 事件管理 > 連接事件 文件。