イベント管理¶
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]];