public async Task Connect(string webSockerUrl) { if (_webSocket != null) { await Close(); } _webSocket = new MessageWebSocketRx(); _subscriptions.Add(_webSocket.ObserveConnectionStatus.Subscribe(OnConnectionChange)); var uri = new Uri(webSockerUrl); var messageObserver = await _webSocket.CreateObservableMessageReceiver(uri, excludeZeroApplicationDataInPong : true); _subscriptions.Add(messageObserver.Subscribe(OnWebSocketOnMessage)); }
public async Task Close() { if (_webSocket != null) { foreach (var subscription in _subscriptions) { subscription.Dispose(); } _subscriptions.Clear(); await _webSocket.CloseAsync(); _webSocket.Dispose(); _webSocket = null; } }