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

การเชื่อมต่อเซิร์ฟเวอร์แชท

ฟีเจอร์แชท SDK ของ Hive ใช้การสื่อสารแบบ WebSocket กับเซิร์ฟเวอร์แชท Hive ดังนั้นในการใช้ฟีเจอร์แชท SDK ของ Hive คุณต้องอ้างอิงไปยังคู่มือต่อไปนี้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์แชท Hive

คำขอเชื่อมต่อ

ในการเชื่อมต่อกับการสนทนา ให้เรียกใช้วิธีการ connect ของคลาส Chat ในขณะนี้ คุณสามารถส่งค่าข้อความเป็นอาร์กิวเมนต์ extraData เพื่อให้ข้อมูลเพิ่มเติม ตัวอย่างเช่น หากคุณส่งสตริงชื่อเล่นของผู้ใช้แอปที่จัดการโดยฐานข้อมูลของแอปเป็นข้อมูลเพิ่มเติม มันสามารถใช้เป็นชื่อเล่นในการสนทนาในหน้าต่างแชทหรือสำหรับการดำเนินการข้อความเหตุการณ์การเข้าร่วมเช่น "~ ได้เข้ามาแล้ว" เมื่อเข้าช่องทาง

ต่อไปนี้คือตัวอย่างโค้ดที่ขอการเชื่อมต่อแชท

Warning

ฟีเจอร์แชทของ SDK Hive สามารถใช้ได้เฉพาะผู้ใช้ (รวมถึงบัญชีผู้เยี่ยมชม) ที่ได้เข้าสู่ระบบโดยใช้ฟีเจอร์การตรวจสอบสิทธิ์ SDK Hive และได้รับการออก PlayerID

using hive;

String extraData = "EXTRA_DATA";
Chat.connect(extraData, (ResultAPI result) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

Chat::connect(extraData, [=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import com.hive.Chat;
import com.hive.ResultAPI;

val extraData = "EXTRA_DATA"
Chat.connect(extraData, object : Chat.ConnectListener {
    override fun onResult(result: ResultAPI) {
        if (result.isSuccess) {
            // API Call Success
        }
    }
})
import com.hive.Chat;

String extraData = "EXTRA_DATA";
Chat.connect(extraData, result -> {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import HIVEService

let extraData = "EXTRA_DATA"
ChatInterface.connect(extraData: extraData) { result in
    if result.isSuccess {
        // API Call Success
    }
}
#import "HIVEService.h"

NSString *extraData = @"EXTRA_DATA";
[HiveChat connectWithExtraData:extraData handler:^(HIVEResultAPI * result) {
    if (result.isSuccess) {
        // API Call Success
    }
}];

คำขอการตัดการเชื่อมต่อ

ในการตัดการเชื่อมต่อแชท ให้เรียกใช้เมธอด disconnect() ของคลาส Chat ด้านล่างนี้คือตัวอย่างโค้ดในการตัดการเชื่อมต่อแชท

Note

คำขอตัดการเชื่อมต่อแชทจะถูกดำเนินการโดยอัตโนมัติเมื่อบัญชีผู้ใช้แอปออกจากระบบ.

using hive;

Chat.disconnect((ResultAPI 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 <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 ตรวจจับสถานะการเชื่อมต่อของเซิร์ฟเวอร์ซ็อกเก็ตแชทและส่งเหตุการณ์การเปลี่ยนแปลงสถานะไปยังแอปอย่างต่อเนื่อง สำหรับวิธีการจัดการเหตุการณ์โดยละเอียด โปรดดูเอกสาร การจัดการเหตุการณ์ > เหตุการณ์การเชื่อมต่อ