본문으로 건너뛰기

ChatModels

채팅 시스템에서 사용하는 데이터 모델 및 인터페이스 정의입니다.

IChatListener 인터페이스

채팅 이벤트를 수신하기 위한 리스너 인터페이스입니다.

메서드설명
OnConnected서버 연결 성공 시 호출
OnDisconnected서버 연결 해제 시 호출
OnError오류 발생 시 호출
OnChannels채널 목록 수신 시 호출
OnSubscribed채널 구독 시 호출
OnUnSubscribed채널 구독 해제 시 호출
OnPublicMessage공개 메시지 수신 시 호출
OnPrivateMessage비공개 메시지 수신 시 호출
OnNotifyMessage알림 메시지 수신 시 호출
OnPlayerOnline플레이어 온라인 상태 수신 시 호출

데이터 모델

ChatServerResponse

필드타입설명
ErrorCodestring에러 코드
Messagestring메시지
ServersChatServerItem[]서버 목록

ChatServerItem

필드타입설명
Addrstring서버 주소
Portint서버 포트
SecurestringSSL 사용 여부 (Y/N)

ChatMessageModel

필드타입설명
midstring메시지 ID
typebyte이벤트 타입
errorint에러 코드
gameIdstring게임 ID
serviceKeystring서비스 키
channelIdstring채널 ID
userUniqueIdstring사용자 고유 ID
userNamestring사용자 이름
privateToUserUniqueIdstring비공개 메시지 대상 ID
messagestring메시지 내용
channelsChatChannelInfo[]채널 정보 배열
playersChatPlayerInfo[]플레이어 정보 배열
onlinePlayersstring[]온라인 플레이어 ID 배열
prevMessageCountint이전 메시지 가져올 개수
ipAddrstringIP 주소
createdAtstring생성 일시

ChatUserInfo

필드타입설명
visitorIdstring방문자 ID
visitorNamestring방문자 이름

ChatChannelInfo

필드타입설명
channelstring채널 이름
countint접속자 수

ChatPlayerInfo

필드타입설명
userUniqueIdstring사용자 고유 ID
onlinestring온라인 상태

ChatFilterResponse

필드타입설명
ErrorCodestring에러 코드
Messagestring메시지
FilterWordsstring[]필터링된 단어 목록

Unity C# 구현

using System;

public interface IChatListener
{
void OnConnected();
void OnDisconnected();
void OnError(string code, string message);
void OnChannels(ChatChannelInfo[] channels);
void OnSubscribed(ChatUserInfo user);
void OnUnSubscribed(ChatUserInfo user);
void OnPublicMessage(ChatUserInfo sender, string message);
void OnPrivateMessage(ChatUserInfo sender, string message);
void OnNotifyMessage(ChatUserInfo sender, string message);
void OnPlayerOnline(ChatPlayerInfo[] players);
}

[Serializable]
public class ChatServerResponse
{
public string ErrorCode;
public string Message;
public ChatServerItem[] Servers;
}

[Serializable]
public class ChatServerItem
{
public string Addr;
public int Port;
public string Secure;
}

[Serializable]
public class ChatMessageModel
{
public string mid;
public byte type;
public int error;
public string gameId;
public string serviceKey;
public string channelId;
public string userUniqueId;
public string userName;
public string privateToUserUniqueId;
public string message;
public ChatChannelInfo[] channels;
public ChatPlayerInfo[] players;
public string[] onlinePlayers;
public int prevMessageCount;
public string ipAddr;
public string createdAt;
}

[Serializable]
public class ChatUserInfo
{
public string visitorId;
public string visitorName;
}

[Serializable]
public class ChatChannelInfo
{
public string channel;
public int count;
}

[Serializable]
public class ChatPlayerInfo
{
public string userUniqueId;
public string online;
}

[Serializable]
public class ChatFilterResponse
{
public string ErrorCode;
public string Message;
public string[] FilterWords;
}