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"); } }
protected virtual byte[] WriteHead(NetByteBuffer buffer, TcpMessage tcpmsg, byte[] body) { return(null); }