การจัดการเหตุการณ์¶
ฟีเจอร์แชทของแบรนด์ Hive จะส่งเหตุการณ์สามประเภทไปยังแอปไคลเอนต์
- เหตุการณ์การเชื่อมต่อ
- เหตุการณ์ช่อง
- เหตุการณ์ข้อความ 1:1
คุณสามารถรับเหตุการณ์โดยการลงทะเบียนตัวฟังเหตุการณ์ด้วยคีย์ที่กำหนดเอง
เหตุการณ์การเชื่อมต่อ¶
เหตุการณ์การเชื่อมต่อเป็นเหตุการณ์ที่เกี่ยวข้องกับการเชื่อมต่อเซิร์ฟเวอร์ซ็อกเก็ตแชทของแบรนด์ Hive
ประเภทเหตุการณ์การเชื่อมต่อ¶
| ชื่อเหตุการณ์ | เวลาที่เกิดเหตุการณ์ | คำอธิบาย | 
|---|---|---|
| OnConnected | เมื่อการเชื่อมต่อสำเร็จ | เกิดขึ้นเมื่อการเชื่อมต่อสำเร็จ. | 
| OnDisconnected | เมื่อการเชื่อมต่อล้มเหลว | เกิดขึ้นเมื่อการเชื่อมต่อล้มเหลว. | 
| OnReconnected | เมื่อการเชื่อมต่อใหม่สำเร็จ | เกิดขึ้นเมื่อการเชื่อมต่อใหม่สำเร็จ เมื่อมีการร้องขอการเชื่อมต่อใหม่ภายใน 10 นาทีหลังจากการตัดการเชื่อมต่อของเซิร์ฟเวอร์ซ็อกเก็ตแชท ระบบจะพยายามเข้าช่องที่เคยเข้าร่วมโดยอัตโนมัติ และส่งกลับรายการช่องที่เข้าร่วมสำเร็จและรายการช่องที่ไม่สามารถเข้าร่วมได้ตามผลลัพธ์. | 
using hive;
ConnectionHandler connectionHandler = new ConnectionHandler
{
    OnConnected = () =>
    {
        // on connected
    },
    OnDisconnected = () =>
    {
        // on disconnected
    },
    OnReconnected = (List<String> channelIds, List<String> failChannelIds) =>
    {
        // on reconnected
    }
};
Chat.addConnectionHandler("UNIQUE_KEY", connectionHandler); // add connection handler
Chat.removeConnectionHandler("UNIQUE_KEY"); // remove connection handler
#include "HiveChat.h"
class ConnectionListener : public FHiveConnectionListener {
public:
    UChatTestView* Owner;
    ConnectionListener(UChatTestView* InOwner) : Owner(InOwner) {}
    virtual void onConnected() override {
        // on connected
    }
    virtual void onDisconnected() override {
        // on disconnected
    }
    virtual void onReconnected(const TArray<FString>& ChannelIds, const TArray<FString>& FailChannelIds) override {
        // on reconnected
    }
};
FHiveChat::AddConnectionListener("UNIQUE_KEY", new ConnectionListener(this)); // add connection listener
FHiveChat::RemoveConnectionListener("UNIQUE_KEY"); // remove connection listener
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
class ConnectionListenerImpl : public ConnectionListener {
    void onConnected() override {
        // on connected
    }
    void onDisconnected() override {
        // on disconnected
    }
    void onReconnected(std::vector<std::string>channelIds, std::vector<std::string>failChannelIds) override {
        // on reconnected
    }
};
Chat::addConnectionListener("UNIQUE_KEY", new ConnectionListenerImpl()); // เพิ่มการฟังการเชื่อมต่อ
Chat::removeConnectionListener("UNIQUE_KEY"); // ลบการฟังการเชื่อมต่อ
import com.hive.Chat;
// เพิ่มตัวฟังการเชื่อมต่อ
Chat.addConnectionListener("UNIQUE_KEY", object : ConnectionListener{
    override fun onConnected() {
        // เมื่อเชื่อมต่อแล้ว
    }
    override fun onDisconnected() {
        // on disconnected
    }
    override fun onReconnected(channelIds: ArrayList<String>, failChannelIds: ArrayList<String>) {
        // เชื่อมต่อใหม่
    }
})
// ลบการฟังการเชื่อมต่อ
Chat.removeConnectionListener("UNIQUE_KEY"); 
import com.hive.Chat;
// เพิ่มผู้ฟังการเชื่อมต่อ
Chat.addConnectionListener("UNIQUE_KEY", new Chat.ConnectionListener() {
    @Override
    public void onConnected() {
        // เมื่อเชื่อมต่อแล้ว
    }
    @Override
    public void onDisconnected() {
        // on disconnected
    }
    @Override
    public void onReconnected(@NonNull ArrayList<String> channelIds, @NonNull ArrayList<String> failChannelIds) {
        // on reconnected
    }
});
// ลบการฟังการเชื่อมต่อ
Chat.removeConnectionListener("UNIQUE_KEY"); 
import HIVEService
class ChatConnectionListener: HiveChatConnectionDelegate {
    func onConnected() {
        // on connected
    }
    func onDisconnected() {
        // on disconnected
    }
    func onReconnected(channelIds: [String], failChannelIds: [String]) {
        // เมื่อเชื่อมต่อใหม่
    }
}
ChatInterface.addConnectionListener(uniqueKey: "UNIQUE_KEY", listener: ChatConnectionListener()) // add connection listener
ChatInterface.removeConnectionListener(uniqueKey: "UNIQUE_KEY") // remove connection listener
#import "HIVEService.h"
@interface ChatConnectionListener : NSObject <HiveChatConnectionDelegate>
@end
@implementation ChatConnectionListener
- (void)onConnected {
    // on connected
}
- (void)onDisconnected {
    // on disconnected
}
- (void)onReconnectedWithChannelIds:(NSArray<NSString *> * _Nonnull)channelIds failChannelIds:(NSArray<NSString *> * _Nonnull)failChannelIds {
    // on reconnected
}
@end
[ChatInterface addConnectionListenerWithUniqueKey:@"UNIQUE_KEY" listener:[[ChatConnectionListener alloc] init]]; // เพิ่มตัวฟังการเชื่อมต่อ
[ChatInterface removeConnectionListenerWithUniqueKey:@"UNIQUE_KEY"]; // ลบตัวฟังการเชื่อมต่อ
เหตุการณ์ช่อง¶
เหตุการณ์ช่องสัญญาณจะสื่อสารเหตุการณ์ทั้งหมดที่เกิดขึ้นระหว่างผู้ใช้และช่องสัญญาณ
ประเภทเหตุการณ์ช่องทาง¶
| ชื่อเหตุการณ์ | เวลาที่เกิดเหตุการณ์ | คำอธิบาย | 
|---|---|---|
| OnEnteredMember | การเข้าร่วมช่องของสมาชิก | เกิดขึ้นเมื่อสมาชิกเข้าร่วมช่อง ข้อมูลของสมาชิกที่เข้าร่วม (EnteredMember) จะถูกส่งเมื่อเข้าร่วมช่อง. | 
| OnExitedMember | การออกจากช่องของสมาชิก | เกิดขึ้นเมื่อสมาชิกออกจากช่อง ข้อมูลของสมาชิกที่ออก (ExitedMember) จะถูกส่งเมื่อออกจากช่อง. | 
| OnDeletedChannel | การลบช่อง | เกิดขึ้นเมื่อช่องถูกลบ ข้อมูลของช่องที่ถูกลบ (DeletedChannel) จะถูกส่ง. | 
| OnNoticeMessage | การรับข้อความแจ้งเตือน | เกิดขึ้นเมื่อได้รับข้อความแจ้งเตือน ข้อมูลของข้อความแจ้งเตือน (ChannelNoticeMessage) จะถูกส่ง. | 
| OnChannelMessage | การรับข้อความในช่อง | เกิดขึ้นเมื่อได้รับข้อความในช่อง ข้อมูลของข้อความในช่อง (ChannelMessage) จะถูกส่ง. | 
สมาชิกที่เข้ามา¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| channelId | รหัสช่องที่เกิดเหตุการณ์ | string | 
| playerId | PlayerID ของสมาชิกที่เข้าร่วม | int | 
| timestamp | เวลาที่เกิดเหตุการณ์ | string | 
| timestampMillis | เวลาที่เกิดเหตุการณ์ (Unix Timestamp) | string | 
สมาชิกที่ออก¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| channelId | รหัสช่องที่เกิดเหตุการณ์ | string | 
| playerId | PlayerID ของสมาชิกที่ออก | int | 
| timestamp | เวลาที่เกิดเหตุการณ์ | string | 
| timestampMillis | เวลาที่เกิดเหตุการณ์ (Unix Timestamp) | string | 
ช่องที่ถูกลบ¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| channelId | รหัสช่องที่ถูกลบ | string | 
| timestamp | เวลาที่เกิดเหตุการณ์ | string | 
| timestampMillis | เวลาที่เกิดเหตุการณ์ (Unix Timestamp) | string | 
ข้อความการแจ้งเตือนช่อง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| channelId | รหัสช่องที่เกิดเหตุการณ์ | string | 
| from | ผู้ส่งข้อความแจ้งเตือน | string | 
| message | ข้อความแจ้งเตือน | string | 
| timestamp | เวลาที่เกิดเหตุการณ์ | string | 
| timestampMillis | เวลาที่เกิดเหตุการณ์ (Unix Timestamp) | string | 
ข้อความช่อง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| channelId | รหัสช่องที่เกิดเหตุการณ์ | string | 
| from | ผู้ส่งข้อความ | string | 
| to | ช่องที่รับข้อความ | string | 
| message | ข้อความ | string | 
| extraData | ข้อมูลเพิ่มเติมเกี่ยวกับข้อความในช่อง | string | 
| timestamp | เวลาที่เกิดเหตุการณ์ | string | 
| timestampMillis | เวลาที่เกิดเหตุการณ์ (Unix 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); // add channel handler
Chat.removeChannelHandler("UNIQUE_KEY"); // remove channel handler
```cpp
include "HiveChat.h"¶
class ChannelListener : public FHiveChannelListener { public: UChatTestView* Owner; ChannelListener(UChatTestView* InOwner) : Owner(InOwner) {}
virtual void onNoticeMessage(const FHiveChannelNoticeMessage& message) override {
    // channel notice message received
}
virtual void onChannelMessage(const FHiveChannelMessage& message) override {
    // channel message received
}
virtual void onDeletedChannel(const FHiveDeletedChannel& channel) override {
    // channel deleted
}
virtual void onEnteredMember(const FHiveEnteredMember& member) override {
    // สมาชิกเข้าร่วม
}
virtual void onExitedMember(const FHiveExitedMember& member) override {
    // สมาชิกออก
}
};
FHiveChat::AddChannelListener("UNIQUE_KEY", new ChannelListener(this)); // add channel listener FHiveChat::RemoveChannelListener("UNIQUE_KEY"); // remove channel listener ```
#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 {
        // channel notice message received
    }
    void onChannelMessage(ChannelMessage const & message) override {
        // channel message received
    }
};
Chat::addChannelListener("UNIQUE_KEY", new ChannelListenerImpl()); // add channel listener
Chat::removeChannelListener("UNIQUE_KEY"); // remove channel listener
import com.hive.Chat;
    // add channel listener
Chat.addChannelListener("UNIQUE_KEY", object: Chat.ChannelListener{
    override fun onEnteredMember(member: Chat.EnteredMember) {
        // member entered
    }
    override fun onExitedMember(member: Chat.ExitedMember) {
        // member exited
    }
    override fun onDeletedChannel(channel: Chat.DeletedChannel) {
        // channel deleted
    }
    override fun onNoticeMessage(message: Chat.ChannelNoticeMessage) {
        // channel notice message received
    }
    override fun onChannelMessage(message: Chat.ChannelMessage) {
        // channel message received
    }
})
    // ลบช่องทางฟัง
Chat.removeChannelListener("UNIQUE_KEY"); 
import com.hive.Chat;
    // เพิ่มช่องทางฟัง
Chat.addChannelListener("UNIQUE_KEY", new Chat.ChannelListener(){
    @Override
    public void onEnteredMember(@NonNull Chat.EnteredMember member) {
        // สมาชิกเข้าร่วม
    }
    @Override
    public void onExitedMember(@NonNull Chat.ExitedMember member) {
        // สมาชิกออก
    }
    @Override
    public void onDeletedChannel(@NonNull Chat.DeletedChannel channel) {
        // channel deleted
    }
    @Override
    public void onNoticeMessage(@NonNull Chat.ChannelNoticeMessage message) {
        // channel notice message received
    }
    @Override
    public void onChannelMessage(@NonNull Chat.ChannelMessage message) {
        // channel message received
    }
});
    // ลบช่องทางฟัง
Chat.removeChannelListener("UNIQUE_KEY");
import HIVEService
class ChatChannelListener: HiveChatChannelMessageDelegate {
    func onEnteredMember(_ member: Chat.EnteredMember) {
        // member entered
    }
    func onExitedMember(_ member: Chat.ExitedMember) {
        // member exited
    }
    func onDeletedChannel(_ channel: Chat.DeletedChannel) {
        // channel deleted
    }
    func onNoticeMessage(_ message: Chat.ChannelNoticeMessage) {
        // channel notice message received
    }
    func onChannelMessage(_ message: Chat.ChannelMessage) {
        // channel message received
    }
}
ChatInterface.addChannelListener(uniqueKey: "UNIQUE_KEY", listener: ChatChannelListener()) // เพิ่มตัวฟังช่อง
ChatInterface.removeChannelListener(uniqueKey: "UNIQUE_KEY") // ลบตัวฟังช่อง
#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 {
    // channel deleted
}
- (void)onNoticeMessage:(Chat.ChannelNoticeMessage *)message {
    // channel notice message received
}
- (void)onChannelMessage:(Chat.ChannelMessage *)message {
    // channel message received
}
@end
[ChatInterface addChannelListenerWithUniqueKey:@"UNIQUE_KEY" listener:[[ChatChannelListener alloc] init]]; // เพิ่มช่องทางฟัง
[ChatInterface removeChannelListenerWithUniqueKey:@"UNIQUE_KEY"]; // ลบช่องทางฟัง
1:1 ข้อความเหตุการณ์¶
เหตุการณ์ข้อความ 1:1 จะส่งมอบเหตุการณ์การส่งข้อความส่วนตัว
ประเภทเหตุการณ์ข้อความ 1:1¶
| ชื่อเหตุการณ์ | เวลาที่เกิดเหตุการณ์ | คำอธิบาย | 
|---|---|---|
| OnDirectMessage | เมื่อได้รับข้อความ 1:1 | เกิดขึ้นเมื่อได้รับข้อความ 1:1 จะส่งวัตถุที่มีข้อมูลข้อความ 1:1 (DirectMessage). | 
ข้อความตรง¶
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | 
|---|---|---|
| from | ผู้ส่งข้อความ | long | 
| to | ผู้รับข้อความ | long | 
| message | ข้อความ | string | 
| extraData | ข้อมูลเพิ่มเติมเกี่ยวกับข้อความช่องทาง | string | 
| timestamp | เวลาที่เกิดเหตุการณ์ | string | 
| timestampMillis | เวลาที่เกิดเหตุการณ์ (Unix Timestamp) | string | 
using hive;
DirectMessageHandler directMessageHandler = new DirectMessageHandler
{
    OnDirectMessage = (message) =>
    {
        // direct message received
    }
};
Chat.addDirectMessageHandler("UNIQUE_KEY", directMessageHandler); // add direct message handler
Chat.removeDirectMessageHandler("UNIQUE_KEY"); // remove direct message handler
class DirectMessageListener : public FHiveDirectMessageListener {
public:
    UChatTestView* Owner;
    DirectMessageListener(UChatTestView* InOwner) : Owner(InOwner) {}
    virtual void onDirectMessage(const FHiveDirectMessage& message) override {
        // direct message received
    }
};
FHiveChat::AddDirectMessageListener("UNIQUE_KEY", new DirectMessageListener(this)); // เพิ่มผู้ฟังข้อความตรง
FHiveChat::RemoveDirectMessageListener("UNIQUE_KEY"); // ลบผู้ฟังข้อความตรง
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
class DirectMessageListenerImpl : public DirectMessageListener {
    void onDirectMessage(DirectMessage const & message) override {
        // direct message received
    }
};
Chat::addDirectMessageListener("UNIQUE_KEY", new DirectMessageListenerImpl()); // เพิ่มผู้ฟังข้อความโดยตรง
Chat::removeDirectMessageListener("UNIQUE_KEY"); // ลบผู้ฟังข้อความโดยตรง
import com.hive.Chat;
     // เพิ่มตัวฟังข้อความตรง
Chat.addDirectMessageListener("UNIQUE_KEY", new Chat.DirectMessageListener() {
    @Override
    public void onDirectMessage(@NonNull Chat.DirectMessage message) {
        // ข้อความตรงที่ได้รับ
    }
});
    // ลบตัวฟังข้อความตรง
Chat.removeDirectMessageListener("UNIQUE_KEY");
import HIVEService
class ChatDirectMessageListener: HiveChatDirectMessageDelegate {
    func onDirectMessage(_ message: Chat.DirectMessage) {
        // direct message received
    }
}
ChatInterface.addDirectMessageListener(uniqueKey: "UNIQUE_KEY", listener: ChatDirectMessageListener()) // เพิ่มผู้ฟังข้อความตรง
ChatInterface.removeDirectMessageListener(uniqueKey: "UNIQUE_KEY") // ลบผู้ฟังข้อความตรง
#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]]; // เพิ่มผู้ฟังข้อความตรง
[ChatInterface removeDirectMessageListenerWithUniqueKey:@"UNIQUE_KEY"]; // ลบผู้ฟังข้อความตรง