public WebSocketSession(WebSocket webSocket, DelegateGotMessage gotMessage, CompletionQueue completion_queue) { this.completion_queue = completion_queue; this.send_queue = new SendQueue(completion_queue, new WebsocketSendAsync(webSocket, completion_queue)); if (null == webSocket) throw new Exception("no websocket context"); this.webSocket = webSocket; if (null == gotMessage) throw new Exception("no recv message callback"); this.gotMessage = gotMessage; this._Id = Guid.NewGuid(); ReceiveAsyncLoop(); SendSessionId(); }
public TcpMessageClientIAR(IPEndPoint server, DelegateConnected connected_callback, DelegateMessageWaiting message_callback, CompletionQueue completion_queue) { send_queue = new SendQueue(completion_queue, new TcpSendIAR(client, completion_queue)); if (null == server) throw new ArgumentException(); this.server = server; if (null == connected_callback) throw new ArgumentException(); this.OnConnected = connected_callback; if (null == message_callback) throw new ArgumentException(); this.OnMessageWaiting = message_callback; if (null == message_callback) throw new ArgumentException(); this.completion_queue = completion_queue; new TcpConnectIAR(client, server, ConnectedThread); }
public TcpMessageClient(IPEndPoint server, DelegateConnected connected_callback, DelegateMessageWaiting message_callback, CompletionQueue completion_queue, DelegateFactoryTcpReader factoryTcpReader) { send_queue = new SendQueue(completion_queue, new TcpSendIAR(client, completion_queue)); if (null == server) throw new ArgumentException(); this.server = server; if (null == connected_callback) throw new ArgumentException(); this.OnConnected = connected_callback; if (null == message_callback) throw new ArgumentException(); this.OnMessageWaiting = message_callback; if (null == message_callback) throw new ArgumentException(); this.completion_queue = completion_queue; if (null == factoryTcpReader) throw new ArgumentException(); this.factoryTcpReader = factoryTcpReader; SocketAsyncEventArgs connectAsyncEventArgs = new SocketAsyncEventArgs(); connectAsyncEventArgs.RemoteEndPoint = server; connectAsyncEventArgs.Completed += connectAsyncEventArgs_Completed; client.ConnectAsync(connectAsyncEventArgs); }