ข้ามไปที่เนื้อหา

การจัดการเหตุการณ์

ฟีเจอร์แชทของแบรนด์ 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", object: Chat.DirectMessageListener{
    override fun onDirectMessage(message: Chat.DirectMessage) {
        // ข้อความตรงที่ได้รับ
    }
})

    // ลบผู้ฟังข้อความตรง
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"]; // ลบผู้ฟังข้อความตรง