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

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

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

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

ในการเชื่อมต่อกับการสนทนา ให้เรียกใช้วิธีการ connect ของคลาส Chat

Warning

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

using hive;

Chat.connect((ResultAPI result) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});
#include "HiveChat.h"

FHiveChat::Connect(FHiveChatOnResultDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
    if (Result.IsSuccess()) {
        // API Call Success
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

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

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

Chat.connect(result -> {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import HIVEService

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

[HiveChat connectWithHandler:^(HIVEResultAPI * result) {
    if ([result isSuccess]) {
        // API Call Success
    }
}];

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

การเชื่อมต่อแชทอาจถูกตัดการเชื่อมต่อชั่วคราวได้ตามสภาพแวดล้อมเครือข่ายหรือการเปลี่ยนสถานะของแอป

คำขอเชื่อมต่อใหม่อัตโนมัติ

เมื่อเกิดสถานการณ์ต่อไปนี้ SDK จะเริ่มการเชื่อมต่อใหม่โดยอัตโนมัติ

  • กรณีที่การเชื่อมต่อเครือข่ายถูกตัดขาดชั่วคราว
  • กรณีที่แอปอยู่ในสถานะ background แล้วกลับสู่ foreground
  • กรณีที่การเชื่อมต่อสิ้นสุดลงเนื่องจากความผิดปกติชั่วคราวของเซิร์ฟเวอร์ เป็นต้น

เมื่อเริ่มการเชื่อมต่อใหม่โดยอัตโนมัติ อีเวนต์ OnConnectStarted จะเกิดขึ้น

การร้องขอการเชื่อมต่อใหม่ด้วยตนเอง

หากต้องการเชื่อมต่อใหม่ด้วยตนเอง ให้เรียก Chat.connect()

การเข้าร่วมช่องอัตโนมัติเมื่อเชื่อมต่อใหม่

ในการเชื่อมต่อใหม่ด้วยตนเองและการเชื่อมต่อใหม่โดยอัตโนมัติ ระบบจะพยายามเข้าร่วมอีกครั้งโดยอัตโนมัติเฉพาะช่องที่เคยเข้าร่วมก่อนหน้านี้ซึ่งไม่ใช่ช่อง PUBLIC เท่านั้น ช่อง PUBLIC จะไม่ถูกเข้าร่วมอีกครั้งโดยอัตโนมัติ หากออกจากช่อง PUBLIC แล้ว เกมต้องจัดการให้ค้นหารายการช่อง PUBLIC และเข้าร่วมอีกครั้ง

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

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

Note

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

using hive;

Chat.disconnect((ResultAPI result) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});
#include "HiveChat.h"

FHiveChat::Disconnect(FHiveChatOnResultDelegate::CreateLambda([this](const FHiveResultAPI& 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 in
    if result.isSuccess() {
        // API Call Success
    }
}
#import "HIVEService.h"

[HiveChat disconnectWithHandler:^(HIVEResultAPI * result) {
    if ([result isSuccess]) {
        // API Call Success
    }
}];

ตรวจสอบสถานะการเชื่อมต่อ

หากต้องการตรวจสอบว่าผู้ใช้แอปเชื่อมต่อกับแชทอยู่ในขณะนี้หรือไม่ ให้เรียกใช้เมธอด isConnected ของคลาส Chat

using hive;

Boolean isConnected = Chat.isConnected();
#include "HiveChat.h"

bool IsConnected = FHiveChat::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 ตรวจจับสถานะการเชื่อมต่อและส่งมอบเหตุการณ์การเปลี่ยนแปลงสถานะอย่างต่อเนื่องไปยังแอป สำหรับวิธีการจัดการเหตุการณ์อย่างละเอียด โปรดดูเอกสาร การจัดการเหตุการณ์ > เหตุการณ์การเชื่อมต่อ