コード例 #1
0
ファイル: Client.cs プロジェクト: NickelAney/CPPPythonUnity
        public void SendRoomMessage(UInt32 roomId, String roleId, Message message)
        {
            if (!this.IsConnect)
            {
                UnityEngine.Debug.LogError("SendRoomMessage this.IsConnect == False");
                return;
            }

            if (m_roleId.Length == 0)
            {
                UnityEngine.Debug.LogError("SendRoomMessage message:" + message.ClsName + " m_roleId == empty");
                return;
            }

            var roomMessageReq = new pkt.protocols.RoomMessageReq();

            roomMessageReq.clsId  = message.ClsId;
            roomMessageReq.roomId = roomId;
            roomMessageReq.roleId = roleId;
            roomMessageReq.signId = message.SignId;

            try
            {
                var memoryStream = new System.IO.MemoryStream();
                var binaryWriter = new System.IO.BinaryWriter(memoryStream, Encoding.ASCII);
                message.Serialize(binaryWriter);
                binaryWriter.Flush();

                roomMessageReq.data = System.Text.Encoding.ASCII.GetString(memoryStream.ToArray());

                binaryWriter.Close();
                memoryStream.Close();

                lock (m_sendMessages)
                {
                    m_sendMessages.Enqueue(roomMessageReq);
                }
            }
            catch (Exception e)
            {
                UnityEngine.Debug.LogException(e);
            }
        }
コード例 #2
0
ファイル: Client.cs プロジェクト: NickelAney/CPPPythonUnity
        public void SendRoomMessage(UInt32 roomId, String roleId, XLua.LuaTable message)
        {
            if (!this.IsConnect)
            {
                UnityEngine.Debug.LogError("SendRoomMessage this.IsConnect == False");
                return;
            }
            var luaMessage     = new FastNet.LocalMessage(message);
            var roomMessageReq = new pkt.protocols.RoomMessageReq();

            roomMessageReq.clsId  = luaMessage.luaTable.Get <String, UInt32>("ClsId");
            roomMessageReq.roomId = roomId;
            roomMessageReq.roleId = roleId;
            roomMessageReq.signId = luaMessage.luaTable.Get <String, UInt32>("SignId");

            try
            {
                var memoryStream = new System.IO.MemoryStream();
                var binaryWriter = new System.IO.BinaryWriter(memoryStream, Encoding.ASCII);
                luaMessage.Serialize(binaryWriter);
                binaryWriter.Flush();

                roomMessageReq.data = Encoding.ASCII.GetString(memoryStream.ToArray());

                binaryWriter.Close();
                memoryStream.Close();

                lock (m_sendMessages)
                {
                    m_sendMessages.Enqueue(roomMessageReq);
                }
            }
            catch (Exception e)
            {
                UnityEngine.Debug.LogException(e);
            }
        }