/// <summary> /// 新增的发送消息函数,增加了消息ID,会把前面的消息ID(4字节)和后面的消息内容组成一个包再发送 /// </summary> /// <param name="msgId">消息ID,注意这是服务器返回给客户端的消息</param> /// <param name="???"></param> public void SendMsg(SocketAsyncEventArgs args, ROOM_REPLY msgId, byte[] data) { byte[] sendData = new byte[data.Length + 4]; byte[] sendHeader = System.BitConverter.GetBytes((int)msgId); Array.Copy(sendHeader, 0, sendData, 0, 4); Array.Copy(data, 0, sendData, 4, data.Length); _server.SendMsg(args, sendData, sendData.Length); }
/// <summary> /// 给房间内的所有人(包括自己) /// </summary> /// <param name="msgId">消息Id</param> /// <param name="output">消息</param> public void BroadcastMsg(ROOM_REPLY msgId, byte[] output) { foreach (var keyPair in PlayersInRoom) { if (keyPair.Value.IsOnline) { ServerRoomManager.Instance.SendMsg(keyPair.Value.Args, msgId, output); } } }