public static async Task <WebSocketConnection> Connect(Uri peer, Action <string> log) { ClientWebSocket m_ClientWebSocket = new ClientWebSocket(); await m_ClientWebSocket.ConnectAsync(peer, CancellationToken.None); switch (m_ClientWebSocket.State) { case WebSocketState.Open: log($"Opening WebSocket connection to remote server {peer}"); WebSocketConnection _socket = new ClintWebSocketConnection(m_ClientWebSocket, peer, log); return(_socket); default: log?.Invoke($"Cannot connect to remote node status {m_ClientWebSocket.State}"); throw new WebSocketException($"Cannot connect to remote node status {m_ClientWebSocket.State}"); } }
internal static async Task Connect(Uri peer, Action <WebSocketConnection> onOpen, Action <string> log) { ClientWebSocket m_ClientWebSocket = new ClientWebSocket(); await m_ClientWebSocket.ConnectAsync(peer, CancellationToken.None); switch (m_ClientWebSocket.State) { case WebSocketState.Open: log($"Opening WebSocket connection to remote server {peer}"); WebSocketConnection _socket = new ClintWebSocketConnection(m_ClientWebSocket, peer, log); onOpen?.Invoke(_socket); break; default: log?.Invoke($"Cannot connect to remote node status {m_ClientWebSocket.State}"); break; } }