跳转至

聊天服务器连接

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调用成功
    }
}));
#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调用成功
    }
}];

重新连接请求

聊天连接可能会因网络环境或应用状态变化而暂时断开。

自动重连请求

发生以下情况时,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调用成功
    }
}));
#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 调用成功
        }
    }
})
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 调用成功
    }
}];

检查连接状态

如需确认应用用户当前是否已连接到聊天,请调用 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 聊天套接字服务器检测连接状态,并持续将状态变化事件传递给应用程序。有关详细的事件处理方法,请参阅 事件管理 > 连接事件 文档。