채널¶
채널 생성¶
새로운 대화 채널을 만들려면 CreateChannelParams
객체를 생성 후 Chat 클래스 createChannel()
메서드를 호출합니다.
CreateChannelParams¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
channelId | 채널 ID (영어 대소문자, 숫자, 일부 특수문자( - , . , _ , ~ , : ) 사용 가능, 최대 100자) | string | Y |
password | 비밀번호 (PRIVATE 채널인 경우만 필수 필드)(최대 50자) | string | N |
channelName | 채널 이름 (최대 50자) | string | Y |
maxMemberCount | 최대 채널 참여 인원 (최소 2명 ~ 최대 5,000명) | integer | Y |
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | enum | Y |
다음은 새로운 대화 채널을 생성하는 예제 코드입니다.
using hive;
CreateChannelParams createChannelParams = new CreateChannelParams();
createChannelParams.channelId = "CHANNEL_ID";
createChannelParams.password = "";
createChannelParams.channelName = "CHANNEL_NAME";
createChannelParams.maxMemberCount = 8;
createChannelParams.type = ChannelType.PUBLIC;
Chat.createChannel(createChannelParams, (ResultAPI result) => {
if (result.isSuccess()) {
// API Call Success
}
});
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
CreateChannelParams param;
param.channelId = "CHANNEL_ID";
param.channelName = "CHANNEL_NAME";
param.password = "";
param.maxMemberCount = 8;
param.type = ChannelType::PUBLIC;
Chat::createChannel(param, [=](ResultAPI const & result) {
if (result.isSuccess()) {
// API Call Success
}
});
import com.hive.Chat;
import com.hive.ResultAPI;
val params = Chat.CreateChannelParams(
channelId = "CHANNEL_ID",
password = "",
channelName = "CHANNEL_NAME",
maxMemberCount = 8,
type = Chat.ChannelType.PUBLIC
)
Chat.createChannel(params, object: Chat.CreateChannelListener{
override fun onResult(result: ResultAPI) {
if (result.isSuccess) {
// API Call Success
}
}
})
#import "HIVEService.h"
HiveChatCreateChannelParams* params = [[HiveChatCreateChannelParams alloc] init];
params.channelId = @"CHANNEL_ID";
params.password = @"";
params.channelName = @"CHANNEL_NAME";
params.maxMemberCount = 8;
params.type = Chat::ChannelType::PUBLIC;
[HiveChat createChannelWithCreateParams:params handler:^(HIVEResultAPI * result) {
if (result.isSuccess) {
// API Call Success
}
}];
채널 삭제¶
기존 대화 채널을 삭제하려면 Chat 클래스 deleteChannel()
메서드를 호출합니다.
다음은 대화 채널을 삭제하는 예제 코드입니다.
채널 입장¶
기존 대화 채널에 입장하려면 EnterChannelParams
객체를 생성한 후 Chat 클래스 enterChannel()
메서드를 호출합니다.
EnterChannelParams¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
channelId | 채널 ID | string | Y |
password | 비밀번호 (PRIVATE 채널일 경우 필수) | string | N |
다음은 대화 채널에 입장하는 예제 코드입니다.
채널 퇴장¶
참여한 대화 채널에서 퇴장하려면 Chat 클래스 exitChannel()
메서드를 호출합니다.
다음은 참여한 대화 채널에서 퇴장하는 예제 코드입니다.
전체 채널 목록 조회¶
현재 존재하는 전체 채널 목록을 조회하려면 GetChannelsParams
객체를 생성한 후 Chat 클래스 getChannels()
메서드를 호출합니다.
Note
GetChannelsParams
객체를 전달하지 않을 시(객체를 전달하지 않으면 null
을 전달함), 현재 존재하는 전체 채널 목록을 필터링 없이 반환합니다.
GetChannelsParams¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | enum | Y |
channelId | 특정 채널 ID로 시작하는 채널 조회 | string | N |
channelName | 특정 채널 이름을 포함하는 채널 조회 | string | N |
pageOrder | 정렬 방식 (ASC , DESC )(기본값 DESC ) | string | N |
pageSize | 한 페이지당 조회할 채널 수 (최소 10개 ~ 최대 100개, 기본값 10) | integer | N |
pageNumber | 조회할 페이지 번호 (1부터 시작, 기본값 1) | integer | N |
응답으로 Channel
객체와 ChannelPage
객체를 전달하며, 구조는 다음과 같습니다.
Channel¶
필드명 | 설명 | 타입 |
---|---|---|
channelId | 채널 ID | string |
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | enum |
owner | 채널 소유자의 Hive PlayerID | string |
channelName | 채널 이름 | string |
maxMemberCount | 최대 채널 참여 인원 | integer |
regTime | 채널 생성 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
ChannelPage¶
필드명 | 설명 | 타입 |
---|---|---|
size | 한 페이지당 항목 수 | integer |
currentPage | 현재 페이지 번호 | integer |
totalElements | 전체 항목 수 | integer |
totalPages | 전체 페이지 수 | integer |
다음은 현재 존재하는 PUBLIC
타입 전체 채널 목록을 조회하는 예제 코드입니다.
using hive;
GetChannelsParams getChannelsParams = new GetChannelsParams();
getChannelsParams.type = ChannelType.PUBLIC;
Chat.getChannels(getChannelsParams, (ResultAPI result, List<Channel> channels, ChannelPage channelPage) => {
if (result.isSuccess()) {
// API Call Success
foreach (Channel channel in channels) {
// Retrieve Channel
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
});
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
Chat::GetChannelsParams params = Chat::GetChannelsParams();
params.type = Chat::ChannelType::PUBLIC;
Chat::getChannels(param, [=](ResultAPI const & result, std::vector<Channel> const & channels, ChannelPage const & pageInfo) {
if (result.isSuccess()) {
// API Call Success
for (Chat::Channel channel : channels) {
// Retrieve Channel
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
});
import com.hive.Chat;
import com.hive.ResultAPI;
val params = Chat.GetChannelsParams(type = Chat.ChannelType.PUBLIC)
Chat.getChannels(params, object: Chat.GetChannelsListener{
override fun onResult(
result: ResultAPI,
channels: ArrayList<Chat.Channel>,
channelPage: Chat.ChannelPage?
) {
if (result.isSuccess) {
// API Call Success
channels.forEach {
// Retrieve Channel
}
channelPage?.let {
// Retrieve ChannelPage
}
}
}
})
import com.hive.Chat;
Chat.GetChannelsParams params = new Chat.GetChannelsParams(Chat.ChannelType.PUBLIC, null, null, null, null, null);
Chat.getChannels(params, (result, channels, channelPage) -> {
if (result.isSuccess()) {
// API Call Success
for (Chat.Channel channel : channels) {
// Retrieve Channel
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
});
import HIVEService
let params = HiveChatParams.GetChannelsParams(type: .public, null, null, null, null, null)
ChatInterface.getChannels(getChannelsParams: params) { result, channels, pageInfo in
if result.isSuccess {
channels.forEach {
// Retrieve Channel
}
channelPage?.let {
// Retrieve ChannelPage
}
}
}
#import "HIVEService.h"
HiveChatGetChannelsParams* params = [[HiveChatGetChannelsParams alloc] init];
params.type = Chat::ChannelType::PUBLIC;
[HiveChat getChannelsWithGetChannelsParams:params handler:^(HIVEResultAPI * result, NSArray<HiveChatChannelContent *> * channels, HiveChatPageInfo * pageInfo) {
if (result.isSuccess) {
// API Call Success
for (Chat::Channel *channel : channels) {
// Retrieve Channel
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
}];
채널 정보 조회¶
특정 채널의 상세 정보를 조회하려면 Chat 클래스 getChannelInfo()
메서드를 호출합니다.
응답으로 Channel
객체와 Member
객체를 전달하며, 구조는 다음과 같습니다.
Channel¶
필드명 | 설명 | 타입 |
---|---|---|
channelId | 채널 ID | string |
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | enum |
owner | 채널 소유자의 Hive PlayerID | string |
channelName | 채널 이름 | string |
maxMemberCount | 최대 채널 참여 인원 | integer |
regTime | 채널 생성 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
Member¶
필드명 | 설명 | 타입 |
---|---|---|
playerId | Hive PlayerID | long |
extraData | 추가 데이터 (UTF-8 기준)(최대 256 Byte) | string |
connectedTime | 접속 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
다음은 특정 채널의 상세 정보를 조회하는 예제 코드입니다.
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
std::string channelId = "CHANNEL_ID";
Chat::getChannelInfo(channelId, [=](ResultAPI const & result, Channel const & channel, std::vector<Member> const & members) {
if (result.isSuccess()) {
if (channel != null) {
// Retrieve Channel
}
for (Chat::Member member : members) {
// Retrieve Member
}
}
});
import com.hive.Chat;
import com.hive.ResultAPI;
val channelId = "CHANNEL_ID"
Chat.getChannelInfo(channelId, object: Chat.GetChannelInfoListener {
override fun onResult(
result: ResultAPI,
channel: Chat.Channel?,
members: ArrayList<Chat.Member>
) {
if (result.isSuccess) {
channel?.let {
// Retrieve Channel
}
members.forEach {
// Retrieve Member
}
}
}
})
#import "HIVEService.h"
NSString *channelId = @"CHANNEL_ID";
[HiveChat getChannelInfoWithChannelId:channelId handler:^(HIVEResultAPI * result, HiveChatChannelContent * channel, NSArray<HiveChatMember *> * members) {
if (result.isSuccess) {
if (channel != null) {
// Retrieve Channel
}
for (Chat::Member *member : members) {
// Retrieve Member
}
}
}];
채널 참여 멤버 조회¶
채널 참여 멤버를 조회하려면 Chat 클래스 getChannelMembers()
메서드를 호출합니다.
Note
응답값은 getChannelInfo()
에서 전달하는 Member
객체와 동일합니다.
채널 이벤트 관리¶
Hive 채팅 소켓 서버 연결 상태를 감지하고 앱 사용자와 채널에서 발생하는 상태 변경 이벤트를 앱에 지속적으로 전달합니다. 자세한 이벤트 처리 방법은 이벤트 관리 > 채널 이벤트 문서를 참고하세요.