public delegate void onConnectedCallback(string data);
public onConnectedCallback onConnected;
对//“connect”事件的回调
public delegate void onDisconnectedCallback(string reason);
public onDisconnectedCallback onDisconnected;
对//“disconnect”事件的回调
public delegate void onMessageReceivedCallback(Message message);
public onMessageReceivedCallback onMessageReceived;
对//“message”事件的回调
public delegate void onUserAddedCallback(UserInfo userinfo);
public onUserAddedCallback onUserAdded;
对//“userAdded”事件的回调
public delegate void onUserRemovedCallback(Message message);
public onUserRemovedCallback onUserRemoved;
对//“userRemoved”事件的回调
public delegate void onErrorReceivedCallback(string result, GameChatException exception);
public onErrorReceivedCallback onErrorReceived;
对//“error”事件的回调
例外情形
下面是对使用Game Chat API过程中发生的例外情况采取的通用处理Class。
public class GameChatException
{
// Detail Error Code
// 未知错误
public static readonly int CODE_UNKNOWN_ERROR = 0;
// 初始化失败
public static readonly int CODE_NOT_INITALIZE = 1;
// 参数不正确时
public static readonly int CODE_INVAILD_PARAM = 2;
// Socket服务器发生错误
public static readonly int CODE_SOCKET_SERVER_ERROR = 500;
// Socket发生错误
public static readonly int CODE_SOCKET_ERROR = -501;
// 发生网络连接错误及超时时
public static readonly int CODE_SERVER_NETWORK_ERROR = 4002;
// 解析从服务器接收的数据时发生错误
public static readonly int CODE_SERVER_PARSING_ERROR = 4003;
// 发生HTTP错误时,传递相应状态码作为响应代码。 (400, 403 ...)
// Error Code
public int code { get; set; }
// Error Message
public string message { get; set; }
}
Client API
订阅频道
Subscription Data Class (per Unit)
public class Subscription
{
public string id;
public string channel_id;
public string user_id;
public string created_at;
}
public class Channel
{
public string id;
public string project_id;
public string unique_id;
public string name;
public string user_id;
public string created_at;
public string updated_at;
}
如需在项目内创建和删除新的频道,应使用Open API。
考虑到安全问题,建议使用Open API通过Server to Server手动进行频道创建和更新等操作。 详细内容请参考Game Chat API指南。
消息
(Received) Message Data Class (per Unit)
public class Message
{
public class User
{
public string id;
public string name;
public string profile;
}
public string message_id;
public string channel_id;
public string message_type;
public string content;
public string[] mentions;
public bool mentions_everyone;
public User sender;
public string created_at;
}
public class Member
{
public string id = "";
public string project_id = "";
public string nickname = "";
public string profile_url = "";
public string country = "";
public string remoteip = "";
public string adid = "";
public string device = "";
public string network = "";
public string version = "";
public string model = "";
public string logined_at = "";
public string created_at = "";
public string updated_at = "";
}