public void addNewCallBackMessage(Message message)
 {
     lock (callBackMessages)
     {
         callBackMessages.Add(message);
     }
 }
 public void addNewSendMessage(Message message)
 {
     lock (sendMessages)
     {
         sendMessages.Add(message);
         MySocket.GetInstance().SendMessage(message);
     }
 }
 /// <summary>
 /// 匹配消息
 /// </summary>
 /// <returns></returns>
 public void getSendMessage(Message c)
 {
     lock (sendMessages)
     {
         for (int i = 0; i < sendMessages.Count; i++)
         {
             if (c.cmd == sendMessages[i].cmd && c.cmd_branch == sendMessages[i].cmd_branch)
             {
                 if (sendMessages[i].eventHandle != null)
                 {
                     c.eventHandle = sendMessages[i].eventHandle;
                     sendMessages.RemoveAt(i);
                 }
             }
         }
     }
 }
 public void submit()
 {
     tips.text = "";
     string accountText = account.text;
     string passwordText = password.text;
     if (string.IsNullOrEmpty(accountText))
     {
         tips.text = "用户名不能为空!";
         return;
     }
     if (string.IsNullOrEmpty(passwordText))
     {
         tips.text = "密码不能为空!";
         return;
     }
     LoginVo vo = new LoginVo(accountText,passwordText,3,getTime(),"");
     com.tianhe.net.Message message = new com.tianhe.net.Message(GlobalConst.LOGIN, GlobalConst.LOGIN_LOGIN, vo, (object o) => {
         LoginResult result = (LoginResult)o;
         callback(result);
     });
     MessageManager.messageManager.addNewSendMessage(message);
 }
Exemple #5
0
        //向服务端发送一条字符串
        public void SendMessage(Message message)
        {
            byte[] msg = encodeMessage(message);

            if (!clientSocket.Connected)
            {
                clientSocket.Close();
                return;
            }
            try
            {
                IAsyncResult asyncSend = clientSocket.BeginSend(msg, 0, msg.Length, SocketFlags.None, new AsyncCallback(sendCallback), clientSocket);
                bool success = asyncSend.AsyncWaitHandle.WaitOne(5000, true);
                if (!success)
                {
                    clientSocket.Close();
                    Console.WriteLine("Failed to SendMessage server.");
                }
            }
            catch
            {
                Console.WriteLine("send message error");
            }
        }
Exemple #6
0
 public byte[] encodeMessage(Message message)
 {
     if (message == null)
         return null;
     return message.data.getBytes();
 }
Exemple #7
0
 public Message decodeMessage(ByteBuffer bb)
 {
     if (bb == null || bb.available() <= 0) return null;
     readBuffer.writeByteBuffer(bb);
     int len = readBuffer.readShort();
     if (len > readBuffer.available())
     {
         readBuffer.rPos(readBuffer.rPos() - 2);
         return null;
     }
     ByteBuffer data = new ByteBuffer();
     data.writeByteBuffer(readBuffer);
     Message message = new Message(data,len-20);
     readBuffer.compack(len - 1);
     return message;
 }