コンテンツにスキップ

チャットサーバー接続

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
    }
}];

再接続リクエスト

Note

一時的なネットワーク切断が発生した場合や(iOSのみ)バックグラウンドとフォアグラウンドの間の遷移中に、SDKは自動的にネットワークへの再接続を1回試みます。

ネットワークの状況によりチャットソケットサーバーの接続が切断された場合、チャットの再接続をリクエストできます。 チャットソケットサーバーの切断後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コール成功
    }
}));
#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
    }
});
#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) {
    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 チャットソケットサーバーは接続状態を検出し、状態変更イベントをアプリに継続的に配信します。詳細なイベント処理方法については、イベント管理 > 接続イベント ドキュメントを参照してください。