Example #1
0
        public override void SendMessage(NetMessage msg, Action <NetMessage> msgCallback = null)
        {
            if (isConnected)
            {
                TcpMessage tcpmsg = msg as TcpMessage;
                if (tcpmsg != null)
                {
                    byte[]        netmsg = tcpmsg.Serialize();
                    NetByteBuffer buffer = NetByteBuffer.CreateWithSize(netmsg.Length + 10);

                    netmsg = this.WriteHead(buffer, tcpmsg, netmsg);

                    if (netmsg != null && netmsg.Length > 0)
                    {
                        if (!msg.IgnoreResp)
                        {
                            sendQueue.Add(new KeyValuePair <float, int>(tcpmsg.getSendTime(), tcpmsg.SubCmd));
                        }

                        //LogMgr.LogFormat("发送消息 :{0}", tcpmsg);
                        msocket.BeginSend(netmsg, 0, netmsg.Length, SocketFlags.None, SendCallback, null);
                    }
                    else
                    {
                        LogMgr.LogError(" TcpMessage Serialize error");
                    }
                }
                else
                {
                    LogMgr.LogError("Not TcpMessage");
                }
            }
            else
            {
                LogMgr.LogError("tcp connected not yield");
            }
        }
Example #2
0
 protected virtual byte[] WriteHead(NetByteBuffer buffer, TcpMessage tcpmsg, byte[] body)
 {
     return(null);
 }