/// <summary> /// Receive handshake from the connected socket /// </summary> /// <param name="webSocket">The connected socket</param> /// <param name="handShakenCallback">Callback when the handshake was successful</param> public void ReceiveHandshake(IWebSocket webSocket, Action <IWebSocket, ClientHandshake> handShakenCallback) { if (webSocket == null || !webSocket.IsConnected || handShakenCallback == null) { return; } var state = new ReceiveHandshakeState { WebSocket = webSocket, Callback = handShakenCallback }; webSocket.BeginReceive(state.Buffer, 0, state.Buffer.Length, OnReceivingHandshake, state); }
private void ReturnHandshake(ServerHandshake serverHandshake, ClientHandshake clientHandshake, ReceiveHandshakeState handshakeState) { var webSocket = handshakeState.WebSocket; var state = new ReturnHandshakeState { WebSocket = webSocket, Callback = handshakeState.Callback, ClientHandshake = clientHandshake }; var handshakeBuffer = serverHandshake.ToByteArray(); webSocket.BeginSend(handshakeBuffer, 0, handshakeBuffer.Length, OnHandshakeReturned, state); }