콘텐츠로 이동

채팅 서버 연결

Hive SDK 채팅 기능은 Hive 채팅 소켓 서버와의 WebSocket 통신을 이용합니다. 따라서 Hive SDK 채팅 기능을 이용하려면, 먼저 아래 가이드를 참고해 Hive 채팅 소켓 서버와 연결해야 합니다.

연결 요청

채팅에 연결하려면 Chat 클래스 connect 메서드를 호출합니다.

다음은 채팅 연결을 요청하는 예제 코드입니다.

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
    }
}];

재연결 요청

네트워크 상황에 따라 채팅 소켓 서버 연결이 해제되는 경우, 채팅 재연결을 요청할 수 있습니다. 채팅 소켓 서버 연결 해제 후 10분 이내 재연결을 요청하면 바로 이전에 참여한 채널에 자동 입장하도록 시도합니다. 재연결 요청 결과, 입장에 성공한 채널 목록과 실패한 채널 목록을 응답으로 반환합니다.

채팅 재연결을 요청 시에는 Chat 클래스 reconnect 메서드를 호출합니다. 다음은 채팅 재연결을 요청하는 예제 코드입니다.

using hive;

Chat.reconnect((ResultAPI result, List<String> channelIds, List<String> failChannelIds) => {
    if (result.isSuccess()) {
        // API Call Success
    }
});
#include "HiveChat.h"

FHiveChat::Reconnect(FHiveChatOnReconnectDelegate::CreateLambda([this](const FHiveResultAPI& Result, const TArray<FString>& ChannelIds, const TArray<FString>& FailChannelIds) {
    if (Result.IsSuccess()) {
        // API Call Success
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;

Chat::reconnect([=](ResultAPI const & result, std::vector<std::string>channelIds, std::vector<std::string>failChannelIds) {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import com.hive.Chat;
import com.hive.ResultAPI;

Chat.reconnect(object : Chat.ReconnectListener {
    override fun onResult(result: ResultAPI, channelIds: ArrayList<String>, failChannelIds: ArrayList<String>) {
        if (result.isSuccess) {
            // API Call Success
        }
    }
})
import com.hive.Chat;

Chat.reconnect(result, channelIds, failChannelIds -> {
    if (result.isSuccess()) {
        // API Call Success
    }
});
import HIVEService

ChatInterface.connect { result, channelIds, failChannelIds in
    if result.isSuccess {
        // API Call Success
    }
}
#import "HIVEService.h"

[HiveChat reconnectWithHandler:^(HIVEResultAPI * result, NSArray<NSString *> * channelIds,  NSArray<NSString *> * failChannelIds) {
    if (result.isSuccess) {
        // API Call Success
    }
}];

연결 해제 요청

채팅 연결을 해제하려면 Chat 클래스 disconnect() 메서드를 호출합니다. 아래는 채팅 연결을 해제하는 예제 코드입니다.

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) {
    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 "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 채팅 소켓 서버 연결 상태를 감지하고 상태 변경 이벤트를 앱에 지속적으로 전달합니다. 자세한 이벤트 처리 방법은 이벤트 관리 > 연결 이벤트 문서를 참고하세요.