コード例 #1
0
        private void ReceiveEvent(ITcpClientAsync client, List <byte[]> data)
        {
            if (data == null || data.Count == 0)
            {
                return;
            }
            ThreadPool.QueueUserWorkItem((o) =>
            {
                List <byte[]> list = o as List <byte[]>;
                foreach (var buffer in list)
                {
                    var arr     = OnDecrypt(buffer);
                    MsgData msg = MsgData.Deserialize(arr);
                    if (msg != null)
                    {
                        if (msg.Id != 0)
                        {
                            var callModel = this.GetMsgIdCall(msg.Id);
                            if (callModel != null)
                            {
                                this.OnMsgIdCall(msg, callModel);
                                return;
                            }
                        }

                        var call = this.GetCmdCall(msg.Cmd);
                        this.OnMsgCmdCall(msg, call);
                    }
                }
                list.Clear();
            }, data);
        }
コード例 #2
0
        private void ReceiveEvent(TcpSocketAsync client, byte[] data, int length)
        {
            data = OnDecrypt(data);
            MsgData msg = MsgData.Deserialize(data);

            if (msg != null)
            {
                ThreadPool.QueueUserWorkItem((o) =>
                {
                    MsgData _msg = o as MsgData;
                    if (_msg.Id != 0)
                    {
                        var callModel = this.GetMsgIdCall(_msg.Id);
                        if (callModel != null)
                        {
                            this.OnMsgIdCall(_msg, callModel);
                            return;
                        }
                    }

                    var call = this.GetCmdCall(_msg.Cmd);
                    this.OnMsgCmdCall(_msg, call);
                }, msg);
            }
        }