채널
채널 입장, 채널 퇴장을 구현할 수 있고, 새로운 유저가 들어오거나 나갈 때 콜백을 이용할 수 있습니다.
콘솔에서 유저의 국가(country
), 언어(language
), 국가 코드(countrycode
), 또는 길드(guild
)를 통해 채널 그룹을 설정했다면, 유저가 채팅 서버에 접속할 때 해당 속성에 따라 자동으로 채널에 입장합니다. 자동 채널 그룹을 설정하려면 콘솔 가이드 문서를 확인하세요.
language
, country
, countrycode
, guild
, whisper
는 채널 그룹 이름으로 사용할 수 없습니다. 채널 자동 생성 기능에서 사용되는 예약어입니다.
설명
채널에 관련된 콜백 및 호출 함수, 정보 클래스입니다.
콜백 함수
// 채널 입장 완료 시 호출
public void OnJoinChannel(ChannelInfo channelInfo)
{
// channelInfo: 채널 정보, 유저 목록, 이전 메시지 포함
}
// 채널 퇴장 완료 시 호출
public void OnLeaveChannel(ChannelInfo channelInfo)
{
// channelInfo: 퇴장한 채널의 정보
}
// 다른 유저가 채널에 입장할 때 호출
public void OnJoinChannelPlayer(
string channelGroup,
string channelName,
UInt64 channelNumber,
PlayerInfo player)
{
// player: 입장한 유저 정보
}
// 다른 유저가 채널에서 퇴장할 때 호출
public void OnLeaveChannelPlayer(
string channelGroup,
string channelName,
UInt64 channelNumber,
PlayerInfo player)
{
// player: 퇴장한 유저 정보
}
호출 함수
// 프라이빗 채널 타입 만 SDK에서 채널을 생성 하실 수 있습니다.
// 다른 채널 타입은 콘솔을 이용해 주시길 바랍니다.
// 프라이빗 채널을 생성 하는 함수 입니다. 채널 그룹, 채널 번호, 채널 이름, 최대 인원, 비밀번호을 넣어서 보내 줍니다.
// 비밀번호를 넣지 않을 경우 공개 채널로 생성 됩니다.
// 채널 번호를 0으로 보낼 경우 서버에서 자동으로 채널 번호를 부여 합니다.
ChatClient.SendCreatePrivateChannel(string channelGroup, UInt64 channelNumber = 0, string channelName = "default", uint maxCount = 50, string password = "")
// 오픈 채널 타입의 채널 입장 함수 입니다. 채널 그룹, 채널 이름을 넣어서 보내 줍니다.
ChatClient.SendJoinOpenChannel(string channelGroup, string channelName)
// 프라이빗 채널 타입의 채널 입장 함수 입니다. 채널 그룹, 채널 번호를 넣어서 보내 줍니다.
ChatClient.SendJoinPrivateChannel(string channelGroup, ulong channelNumber, string password = "")
// 채널에서 나가는 함수 입니다. 채널 그룹, 채널 이름, 채널 번호를 넣어서 보내 줍니다.
ChatClient.SendLeaveChannel(string channelGroup, string channelName, UInt64 channelNumber = 0)
// 뒤끝 베이스 길드 기능을 사용하고 계신 경우에만 사용 가능한 길드 채널 관련 함수 입니다.
// 길드 채널 입장 함수 입니다.
ChatClient.SendJoinGuildChannel();
// 길드 채널에서 나가는 함수 입니다.
ChatClient.SendLeaveGuildChannel();
예를 들어 길드 생성(CreateGuildV3) 후 아래의 코드를 호출 해 주셔야 합니다.
ChatClient.SendJoinGuildChannel();
길드 탈퇴(WithdrawGuildV3) 후에는 아래의 코드를 호출 해 주셔야 합니다.
ChatClient.SendLeaveGuildChannel();
또한, 길드 가입 수락 처리를 실시간 알림으로 처리 하신 경우 OnApprovedGuildJoin 콜백이 올 경우에도 길드 채팅 채널 입장 함수를 호출 해 주셔야 합니다. 함수를 호출 하시면 자동으로 가입 된 길드의 길드 채팅 채널로 입장 됩니다.
만일 따로 로직 처리를 해 주시지 않으실 경우 유저가 재 접속 전까지는 길드 채팅을 이용 하실 수 없습니다.
길드를 생성 시 아래의 코드를 입력 하세요. 단, guild
는 자동 채널 생성 기능에서 사용하고 있는 예약어이기 때문에, guild
가 아닌 다른 채널 그룹 이름을 사용해야 합니다. 생성이 완료 되면 자동으로 채널에 접속 합니다.
ChatClient.SendCreatePrivateChannel("guilds", 1, "guildname", 100, "");
이후에 재접속 후에는 아래의 함수를 호출 해 주셔야 길드 채널에 접속 하실 수 있습니다.
ChatClient.SendJoinPrivateChannel("guilds", 1);
길드원의 경우 즉시 가입, 또는 가입 수락 시 콜백이 구현 된 경우에도 위의 함수를 호출 해 주시면 됩니다.
길드원이 탈퇴 및 추방 콜백이 구현 된 경우는 아래의 함수를 호출 해 주셔야 길드 채널에서 나가집니다.
ChatClient.SendLeaveChannel("guilds", "guildname", 1);
정보 클래스
ChannelInfo
채널 입장 시 제공되는 채널 정보입니다.
public class ChannelInfo
{
// 채널 정보
public string ChannelGroup; // 채널 그룹명
public string ChannelName; // 채널명
public UInt64 ChannelNumber; // 채널 번호
public uint MaxCount; // 최대 인원수
// 채널 데이터
public Dictionary<string, PlayerInfo> Players; // 접속중인 유저 목록
public List<MessageInfo> Messages; // 이전 채팅 메시지
}
PlayerInfo
채널 내 유저 정보입니다.
public class PlayerInfo
{
public string GamerName; // 유저명
public string Avatar; // 아바타
public string Language; // 언어
public Dictionary<string, string> Metadata; // 추가 정보
}
이전 메시지 확인
public void OnJoinChannel(ChannelInfo channelInfo)
{
// 이전 메시지 확인
foreach (var msg in channelInfo.Messages)
{
Debug.Log($"[이전메시지] {msg.GamerName}: {msg.Message}");
}
// 현재 접속중인 유저 확인
foreach (var player in channelInfo.Players)
{
Debug.Log($"접속중: {player.Value.GamerName}");
}
}