/// <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);
    }
示例#2
0
 /// <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);
         }
     }
 }