/// <summary> /// 进入弹幕 /// </summary> /// <param name="requestID">请求ID</param> /// <param name="args">弹幕数据</param> public int Enter(int requestID, ChatData chat) { List <ChatData> datas = new List <ChatData>(); datas.Add(chat); int ret = SendToAllClients(FUNCTIONID_CHAT_ENTER, requestID, datas); datas.Clear(); return(ret > 0 ? 1 : 0); }
/// <summary> /// 获取弹幕信息 /// </summary> /// <param name="datas">用于返回弹幕信息</param> /// <param name="body">包体</param> /// <param name="bodyLength">包体长度</param> /// <returns></returns> public static int GetChatDatas(List <ChatData> datas, byte[] body, int bodyLength) { Binary br = new Binary(); br.Write(body, bodyLength); int size = br.ReadInt(); for (int i = 0; i < size; i++) { ChatData chat = new ChatData(); chat.m_userID = br.ReadInt(); chat.m_type = br.ReadChar(); chat.m_text = br.ReadString(); datas.Add(chat); } br.Close(); return(1); }
/// <summary> /// 发送消息 /// </summary> /// <param name="userID">方法ID</param> /// <param name="userID">请求ID</param> /// <param name="text">发送字符</param> public int SendToAllClients(int functionID, int requestID, List <ChatData> datas) { Binary bw = new Binary(); int chatSize = datas.Count; bw.WriteInt(chatSize); for (int i = 0; i < chatSize; i++) { ChatData chat = datas[i]; bw.WriteInt(chat.m_userID); bw.WriteChar((char)chat.m_type); bw.WriteString(chat.m_text); } byte[] bytes = bw.GetBytes(); int ret = Send(new CMessage(GroupID, ServiceID, functionID, SessionID, requestID, m_socketID, 0, CompressType, bytes.Length, bytes)); bw.Close(); return(ret); }