イベント管理¶
Hive チャット機能は、アプリクライアントに3種類のイベントを提供します。
- 接続イベント
- チャンネルイベント
- 1:1 メッセージイベント
カスタムキーでイベントリスナーを登録することで、イベントを受信できます。
接続イベント¶
接続イベントは、Hive チャットソケットサーバー接続に関連するイベントです。
接続イベントタイプ¶
| イベント名 | 発生時間 | 説明 | 
|---|---|---|
| 接続時 | 接続が成功したとき | 接続が成功したときに発生します。 | 
| 切断時 | 接続が失敗したとき | 接続が失敗したときに発生します。 | 
#import "HIVEService.h"
@interface ChatConnectionListener : NSObject <HiveChatConnectionDelegate>
@end
@implementation ChatConnectionListener
- (void)onConnected {
    // on connected
}
- (void)onDisconnected {
    // 切断されたとき
}
@end
[ChatInterface addConnectionListenerWithUniqueKey:@"UNIQUE_KEY" listener:[[ChatConnectionListener alloc] init]];
チャンネルイベント¶
チャネルイベントは、ユーザーとチャネルの間で発生するすべてのイベントを伝えます。
チャンネルイベントタイプ¶
| イベント名 | 発生時間 | 説明 | 
|---|---|---|
| OnEnteredMember | メンバー チャンネル参加 | メンバーがチャンネルに参加したときに発生します。チャンネルに参加する際に、参加メンバーの情報を含むオブジェクト (EnteredMember) が渡されます。 | 
| OnExitedMember | メンバー チャンネル退出 | メンバーがチャンネルを退出したときに発生します。チャンネルを離れる際に、退出したメンバーの情報を含むオブジェクト (ExitedMember) が渡されます。 | 
| OnDeletedChannel | チャンネル削除 | チャンネルが削除されたときに発生します。削除されたチャンネルの情報を含むオブジェクト (DeletedChannel) が渡されます。 | 
| OnNoticeMessage | 通知メッセージ受信 | 通知メッセージを受信したときに発生します。通知メッセージの情報を含むオブジェクト (ChannelNoticeMessage) が渡されます。 | 
| OnChannelMessage | チャンネルメッセージ受信 | チャンネルメッセージを受信したときに発生します。チャンネルメッセージの情報を含むオブジェクト (ChannelMessage) が渡されます。 | 
入会したメンバー¶
| フィールド名 | 説明 | タイプ | 
|---|---|---|
| channelId | イベントが発生したチャネルID | string | 
| playerId | 参加したメンバーのPlayerID | int | 
| extraData | 追加のメンバー情報 | string | 
| timestamp | イベント発生時刻 | string | 
退出メンバー¶
| フィールド名 | 説明 | タイプ | 
|---|---|---|
| channelId | イベントが発生したチャンネルID | string | 
| playerId | 退出したメンバーのPlayerID | int | 
| extraData | メンバーに関する追加情報 | string | 
| timestamp | イベントが発生した時間 | string | 
削除されたチャンネル¶
| フィールド名 | 説明 | タイプ | 
|---|---|---|
| channelId | 削除されたチャンネルID | string | 
| timestamp | イベント発生時間 | string | 
チャンネル通知メッセージ¶
| フィールド名 | 説明 | タイプ | 
|---|---|---|
| channelId | イベントが発生したチャンネルID | 文字列 | 
| from | 通知メッセージの送信者 | 文字列 | 
| message | 通知メッセージ | 文字列 | 
| timestamp | イベントが発生した時間 | 文字列 | 
チャンネルメッセージ¶
| フィールド名 | 説明 | タイプ | 
|---|---|---|
| channelId | イベントが発生したチャンネルID | string | 
| from | メッセージ送信者 | string | 
| fromExtra | メッセージ送信者に関する追加情報 | string | 
| to | 受信チャンネル | string | 
| message | メッセージ | string | 
| timestamp | イベント発生時間 | string | 
using hive;
ChannelHandler channelHandler = new ChannelHandler
{
    OnEnteredMember = (member) =>
    {
        // member entered
    },
    OnExitedMember = (member) =>
    {
        // member exited
    },
    OnDeletedChannel = (channel) =>
    {
        // channel deleted
    },
    OnNoticeMessage = (message) =>
    {
        // channel notice message received
    },
    OnChannelMessage = (message) =>
    {
        // channel message received
    }
};
Chat.addChannelHandler("UNIQUE_KEY", channelHandler);
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
class ChannelListenerImpl : public ChannelListener {
    void onEnteredMember(EnteredMember const & member) override {
        // member entered
    }
    void onExitedMember(ExitedMember const & member) override {
        // メンバーが退出しました
    }
    void onDeletedChannel(DeletedChannel const & channel) override {
        // channel deleted
    }
    void onNoticeMessage(ChannelNoticeMessage const & message) override {
        // チャンネル通知メッセージを受信しました
    }
    void onChannelMessage(ChannelMessage const & message) override {
        // channel message received
    }
};
Chat::addChannelListener("UNIQUE_KEY", new ChannelListenerImpl());
import com.hive.Chat;
Chat.addChannelListener("UNIQUE_KEY", object: Chat.ChannelListener{
    override fun onEnteredMember(member: Chat.EnteredMember) {
        // member entered
    }
    override fun onExitedMember(member: Chat.ExitedMember) {
        // メンバーが退出しました
    }
    override fun onDeletedChannel(channel: Chat.DeletedChannel) {
        // channel deleted
    }
    override fun onNoticeMessage(message: Chat.ChannelNoticeMessage) {
        // チャンネル通知メッセージを受信しました
    }
    チャネルメッセージを受信したときのオーバーライド関数は、メッセージ: Chat.ChannelMessage を使用します {
        // チャネルメッセージを受信しました
    }
})
import com.hive.Chat;
Chat.addChannelListener("UNIQUE_KEY", new Chat.ChannelListener(){
    @Override
    public void onEnteredMember(@NonNull Chat.EnteredMember member) {
        // member entered
    }
    @Override
    public void onExitedMember(@NonNull Chat.ExitedMember member) {
        // member exited
    }
    @Override
    public void onDeletedChannel(@NonNull Chat.DeletedChannel channel) {
        // channel deleted
    }
    @Override
    public void onNoticeMessage(@NonNull Chat.ChannelNoticeMessage message) {
        // チャンネル通知メッセージを受信しました
    }
    @Override
    public void onChannelMessage(@NonNull Chat.ChannelMessage message) {
        // channel message received
    }
});
import HIVEService
class ChatChannelListener: HiveChatChannelMessageDelegate {
    func onEnteredMember(_ member: Chat.EnteredMember) {
        // member entered
    }
    func onExitedMember(_ member: Chat.ExitedMember) {
        // メンバーが退出しました
    }
    func onDeletedChannel(_ channel: Chat.DeletedChannel) {
        // channel deleted
    }
    func onNoticeMessage(_ message: Chat.ChannelNoticeMessage) {
        // チャンネル通知メッセージを受信しました
    }
    func onChannelMessage(_ message: Chat.ChannelMessage) {
        // channel message received
    }
}
ChatInterface.addChannelListener(uniqueKey: "UNIQUE_KEY", listener: ChatChannelListener())
#import "HIVEService.h"
@interface ChatChannelListener : NSObject <HiveChatChannelMessageDelegate>
@end
@implementation ChatChannelListener
- (void)onEnteredMember:(Chat.EnteredMember *)member {
    // member entered
}
- (void)onExitedMember:(Chat.ExitedMember *)member {
    // メンバーが退出しました
}
- (void)onDeletedChannel:(Chat.DeletedChannel *)channel {
    // チャンネルが削除されました
}
- (void)onNoticeMessage:(Chat.ChannelNoticeMessage *)message {
    // チャンネル通知メッセージを受信しました
}
- (void)onChannelMessage:(Chat.ChannelMessage *)message {
    // channel message received
}
@end
[ChatInterface addChannelListenerWithUniqueKey:@"UNIQUE_KEY" listener:[[ChatChannelListener alloc] init]];
1:1 メッセージイベント¶
1:1メッセージイベントは、個人的なメッセージ送信イベントを配信します。
1:1 メッセージイベントタイプ¶
| イベント名 | 発生時間 | 説明 | 
|---|---|---|
| OnDirectMessage | 1:1メッセージを受信したとき | 1:1メッセージを受信したときに発生します。1:1メッセージ情報を含むオブジェクトを配信します(DirectMessage)。 | 
ダイレクトメッセージ¶
| フィールド名 | 説明 | タイプ | 
|---|---|---|
| from | メッセージ送信者 | long | 
| fromExtra | メッセージ送信者の追加情報 | string | 
| to | メッセージ受信者 | long | 
| message | メッセージ | string | 
| timestamp | イベント発生時間 | string | 
#import "HIVEService.h"
@interface ChatDirectMessageListener : NSObject <HiveChatDirectMessageDelegate>
@end
@implementation ChatDirectMessageListener
- (void)onDirectMessage:(Chat.DirectMessage *)message {
    // direct message received
}
@end
[ChatInterface addDirectMessageListenerWithUniqueKey:@"UNIQUE_KEY" listener:[[ChatDirectMessageListener alloc] init]];