Exemple #1
0
        public void send(Int16 cmd, byte[] data, int len)
        {
            ConnectIfNeeded();

            //没有连上逻辑服,丢掉将要发的消息
            if (!m_isConnectted && m_reconnect != null)
            {
                return;
            }
            SendBuffer msg = null;

            lock (cacheSendMsgs)
            {
                msg = cacheSendMsgs.Get();
            }

            msg.Init(cmd, m_PackHeaderIndex, data, len);
            m_PackHeaderIndex += 1;
            if (m_PackHeaderIndex > 9999)
            {
                m_PackHeaderIndex = 1;
            }

            lock (sendMsgs)
            {
#if UNITY_EDITOR
                lock (this)
                {
                    if (m_recordNet)
                    {
                        m_byteSent += msg.Length;
                    }
                }
#endif
                sendMsgs.Enqueue(msg);
            }
        }