跳转到主要内容

ChatModels

聊天系统中使用的数据模型及接口定义。

IChatListener 接口

用于接收聊天事件的监听器接口。

方法说明
OnConnected服务器连接成功时调用
OnDisconnected服务器断开连接时调用
OnError发生错误时调用
OnChannels接收频道列表时调用
OnSubscribed订阅频道时调用
OnUnSubscribed取消订阅频道时调用
OnPublicMessage接收公开消息时调用
OnPrivateMessage接收私密消息时调用
OnNotifyMessage接收通知消息时调用
OnPlayerOnline接收玩家在线状态时调用

数据模型

ChatServerResponse

字段类型说明
ErrorCodestring错误代码
Messagestring消息
ServersChatServerItem[]服务器列表

ChatServerItem

字段类型说明
Addrstring服务器地址
Portint服务器端口
Securestring是否使用 SSL(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;
}