public virtual async Task OnPeerResponseAsync(WebSocketConnection socket, InvocationResult invocationResult) { var socketId = WebSocketConnectionManager.GetId(socket); try { if (_waitingRemoteInvocations.ContainsKey(socketId) && invocationResult.Id > 0) { if (_waitingRemoteInvocations[socketId].ContainsKey(invocationResult.Id)) { _waitingRemoteInvocations[socketId][invocationResult.Id].SetResult(invocationResult); // remove the completion source from the waiting list. } _waitingRemoteInvocations[socketId].Remove(invocationResult.Id); } } catch (Exception e) { var str = e.Message; } await Task.CompletedTask; }
/// <summary> /// Called when a client has disconnected from the server. /// </summary> /// <param name="socket">The web-socket of the client.</param> /// <returns>Awaitable Task.</returns> public virtual async Task OnDisconnected(WebSocketConnection socket) { await WebSocketConnectionManager.RemoveSocket(WebSocketConnectionManager.GetId(socket)).ConfigureAwait(false); }