Beispiel #1
0
        public static TcpSessionApplicationWorkerConnection CreateApplicationWorkerChannelDispatcher(this ApportionDispatcher apportionDispatcher, IDictionary <long, TcpSessionChannelDispatcher> dispatchers, ConnectionWorkType workType)
        {
            var workerConnection = new TcpSessionApplicationWorkerConnection();

            workerConnection.ConnectionWorkType = workType;
            workerConnection.SetSession(apportionDispatcher.CurrentSession);
            return(workerConnection);
        }
Beispiel #2
0
 public void Join(TcpSessionApplicationWorkerConnection targetConnection)
 {
     if (IsJoin)
     {
         return;
     }
     IsJoin            = true;
     _targetConnection = targetConnection;
     targetConnection.Join(this);
 }
Beispiel #3
0
        public static TcpSessionApplicationWorkerConnection CreateApplicationWorkerChannelDispatcher(this ApportionDispatcher apportionDispatcher, IDictionary <long, TcpSessionChannelDispatcher> dispatchers, ConnectionWorkType workType)
        {
            var workerConnection = new TcpSessionApplicationWorkerConnection();

            workerConnection.ConnectionWorkType = workType;
            workerConnection.SetSession(apportionDispatcher.GetCurrentSession());

            var bufferData = apportionDispatcher.ListByteBuffer.ToArray();

            if (bufferData.Length > 0)//如缓冲区有数据,则处理消息
            {
                workerConnection.ListByteBuffer.AddRange(bufferData);
            }
            return(workerConnection);
        }