public void Push(ITcpClientSession item) { if (activeDict.TryRemove(item.SessionId, out item)) { pool.Enqueue(item); } }
public override void OnDisConnect(ITcpClientSession session) { RpcContainer.DestroyScope(session.SessionId); foreach (var taskSource in taskDict.Values) { taskSource.SetException(new Exception("Disconnected with the server")); } }
public override void OnReceived(ITcpClientSession session, IDynamicBuffer dataBuffer) { byte[] result = new byte[dataBuffer.DataSize]; Buffer.BlockCopy(dataBuffer.Buffer, 0, result, 0, dataBuffer.DataSize); TaskCompletionSource <byte[]> tSource; if (taskQueue.TryDequeue(out tSource)) { tSource.SetResult(result); } }
public override void OnReceived(ITcpClientSession session, IDynamicBuffer dataBuffer) { int cmd = dataBuffer.Buffer[0]; MemoryStream ms = new MemoryStream(dataBuffer.Buffer, 1, dataBuffer.DataSize - 1); switch (cmd) { case 1: { RpcCallData data = Serializer.Deserialize <RpcCallData>(ms); ThreadPool.QueueUserWorkItem(CallFunc, data); } break; case 2: { var data = Serializer.Deserialize <RpcReturnData>(ms); TaskCompletionSource <byte[]> tSource; if (taskDict.TryRemove(data.Id, out tSource)) { tSource.SetResult(data.Value); } } break; default: { var info = Serializer.Deserialize <RpcErrorInfo>(ms); TaskCompletionSource <byte[]> tSource; if (taskDict.TryRemove(info.Id, out tSource)) { tSource.SetException(new Exception(info.Message)); } } break; } ms.Dispose(); }
public override void OnReceived(ITcpClientSession session, IDynamicBuffer dataBuffer) { byte[] result = new byte[dataBuffer.DataSize]; Buffer.BlockCopy(dataBuffer.Buffer, 0, result, 0, dataBuffer.DataSize); tSource.SetResult(result); }
public void Disconnect(ITcpClientSession sesseion) { sesseion.DisConnect(); }
public void Push(ITcpClientSession item) { if (activeDict.TryRemove(item.SessionId, out item)) pool.Enqueue(item); }
public override void OnDisConnect(ITcpClientSession session) { Console.WriteLine("与服务器断开连接"); }
public override void OnReceived(ITcpClientSession session, IDynamicBuffer dataBuffer) { byte[] result = new byte[dataBuffer.DataSize]; Buffer.BlockCopy(dataBuffer.Buffer, 0, result,0, dataBuffer.DataSize); tSource.SetResult(result); }
public override void OnReceived(ITcpClientSession session, IDynamicBuffer dataBuffer) { Received(session, dataBuffer); }
public static void DisConnected(object sender, ITcpClientSession session) { Console.WriteLine("与服务器断开连接"); }
//断开连接事件 public virtual void OnDisConnect(ITcpClientSession session) { }
public virtual void OnConnected(ITcpClientSession session) { }
//当接收到命令包时触发 public virtual void OnReceived(ITcpClientSession session, IDynamicBuffer dataBuffer) { }
public static void Connected(object sender, ITcpClientSession session) { Console.WriteLine("连接成功,开始接受数据"); Session = session; }
public override void OnConnected(ITcpClientSession session) { RpcContainer.CreateScope(session.SessionId); }
public void ReceiveCommond(ITcpClientSession session, ReceiveCommond cmd) { OnReceived(this, cmd); }