コンテンツにスキップ

チャットサーバー接続

Hive SDKのチャット機能は、Hive チャットソケットサーバーとのWebSocket通信を使用します。したがって、Hive SDKのチャット機能を使用するには、まず以下のガイドを参照してHive チャットソケットサーバーに接続する必要があります。

接続リクエスト

チャットに接続するには、Chatクラスのconnectメソッドを呼び出します。

以下はチャット接続をリクエストするためのコードの例です。

Warning

Hive SDKのチャット機能は、Hive SDKの認証機能を使用してログインしたユーザー(ゲストアカウントを含む)のみが使用できます。また、PlayerIDが発行されている必要があります。

using hive;

String extraData = "EXTRA_DATA";
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
    }
}];

再接続をリクエスト

ネットワークの状態によりチャットソケットサーバー接続が切断された場合、チャットの再接続をリクエストできます。チャットソケットサーバー接続が切断された後、10分以内に再接続をリクエストすると、以前に参加したチャンネルに自動的に入ろうとします。再接続リクエストの結果、成功裏に入ったチャンネルのリストと、入れなかったチャンネルのリストが応答として返されます。

チャットの再接続をリクエストする際は、Chatクラスのreconnectメソッドを呼び出してください。 以下は、チャットの再接続をリクエストする例のコードです。

using hive;

Chat.reconnect((ResultAPI result, List<String> channelIds, List<String> failChannelIds) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});
#include "HiveChat.h"

FHiveChat::Reconnect(FHiveChatOnReconnectDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FString>& ChannelIds, const TArray<FString>& FailChannelIds) {
    if (Result.IsSuccess()) {
        // API Call Success
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

Chat::reconnect([=](ResultAPI const & result, std::vector<std::string>channelIds, std::vector<std::string>failChannelIds) {
    if (result.isSuccess()) {
        // APIコール成功
    }
});
import com.hive.Chat;
import com.hive.ResultAPI;

Chat.reconnect(object : Chat.ReconnectListener {
    override fun onResult(result: ResultAPI, channelIds: ArrayList<String>, failChannelIds: ArrayList<String>) {
        if (result.isSuccess) {
            // API Call Success
        }
    }
})
import com.hive.Chat;

Chat.reconnect(result, channelIds, failChannelIds -> {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import HIVEService

ChatInterface.connect { result, channelIds, failChannelIds in
    if result.isSuccess {
        // API Call Success
    }
}
#import "HIVEService.h"

[HiveChat reconnectWithHandler:^(HIVEResultAPI * result, NSArray<NSString *> * channelIds,  NSArray<NSString *> * failChannelIds) {
    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 はチャットソケットサーバーの接続状態を検出し、状態変更イベントをアプリに継続的に配信します。詳細なイベント処理方法については、イベント管理 > 接続イベント ドキュメントを参照してください。