コンテンツにスキップ

チャットサーバー接続

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