コンテンツにスキップ

チャットサーバー接続

Hive SDKのチャット機能は、Hive チャットソケットサーバーとのWebSocket通信を使用します。したがって、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 チャットソケットサーバーは接続状態を検出し、状態変更イベントをアプリに継続的に配信します。詳細なイベント処理方法については、イベント管理 > 接続イベント ドキュメントを参照してください。