public async void Start() { var socketOptions = new PureWebSocketOptions() { DebugMode = false, SendDelay = 100, IgnoreCertErrors = true, MyReconnectStrategy = new ReconnectStrategy(2000, 4000, 20) }; ws = new PureWebSocket("ws://" + _url + "/websocket", socketOptions); ws.OnStateChanged += Ws_OnStateChanged; ws.OnMessage += Ws_OnMessage; ws.OnClosed += Ws_OnClosed; ws.OnSendFailed += Ws_OnSendFailed; await ws.ConnectAsync(); Console.WriteLine("SENDING WEBSOCKET MESSAGE"); string[] s = new string[1]; s[0] = "1"; WebSocket.ConnectMsg c = new WebSocket.ConnectMsg() { msg = "connect", version = "1", support = s }; await ws.SendAsync(JsonConvert.SerializeObject(c)); Console.ReadLine(); ws.Dispose(true); await ws.ConnectAsync(); }
public async Task Open() { try { if (_socket == null) { Init(); } if (_socket != null && _socket.State != WebSocketState.Aborted || _socket.State == WebSocketState.Closed) { await _socket.ConnectAsync(); } else { if (_socket.State == WebSocketState.CloseReceived || _socket.State == WebSocketState.CloseSent) { await Task.Delay(20000); await _socket.ConnectAsync(); } } } catch (Exception ex) { _onError.Invoke(this, ex); } }
public static async Task Main(string[] args) { _timer = new Timer(OnTickAsync, null, 2000, 1); RESTART: var socketOptions = new PureWebSocketOptions() { DebugMode = true, SendDelay = 100, IgnoreCertErrors = true, MyReconnectStrategy = new ReconnectStrategy(3000, 6000) }; _ws = new PureWebSocket("wss://demos.kaazing.com/echo", socketOptions); _ws.OnStateChanged += Ws_OnStateChanged; _ws.OnMessage += Ws_OnMessage; _ws.OnClosed += Ws_OnClosed; _ws.OnSendFailed += Ws_OnSendFailed; try { await _ws.ConnectAsync(); } catch (Exception e) { _ws.Dispose(); goto RESTART; } Console.ReadLine(); _ws.Dispose(true); goto RESTART; }
public static async Task Main(string[] args) { // this is just a timer to send data for us (simulate activity) _timer = new Timer(OnTickAsync, null, 4000, 1); RESTART: var socketOptions = new PureWebSocketOptions { DebugMode = false, // set this to true to see a ton O' logging SendDelay = 100, // the delay in ms between sending messages IgnoreCertErrors = true, MyReconnectStrategy = new ReconnectStrategy(2000, 4000, 20) // automatic reconnect if connection is lost }; _ws = new PureWebSocket("wss://demos.kaazing.com/echo", socketOptions, "MyOptionalInstanceName1"); _ws.OnStateChanged += Ws_OnStateChanged; _ws.OnMessage += Ws_OnMessage; _ws.OnClosed += Ws_OnClosed; _ws.OnSendFailed += Ws_OnSendFailed; await _ws.ConnectAsync(); Console.ReadLine(); _ws.Dispose(true); goto RESTART; }
/// <summary> /// Connect the WebSocket and register all the events /// </summary> /// <returns>true if the connection was successful, false otherwise</returns> public async Task <bool> ConnectAndRegisterAsync() { logger.LogInformation("ConnectAndRegisterAsync() is working."); PureWebSocket pureWebSocket = new PureWebSocket(webSocketConfiguration.FullUrl, socketOptions); pureWebSocket.OnStateChanged += WSOnStateChanged; pureWebSocket.OnMessage += WSOnMessage; pureWebSocket.OnOpened += WSOnOpened; pureWebSocket.OnError += WSOnError; logger.LogDebug("ConnectAndRegisterAsync() All custom events registered"); return(await pureWebSocket.ConnectAsync()); }
public Task <bool> ConnectAsync() { Log("Connect invoked."); try { return(_socket.ConnectAsync()); } catch (Exception ex) { Log($"Connect thew an exception, {ex.Message}."); Socket_OnError(this, ex); throw; } }
public async Task Start() { _logger.Debug("Starting Hubitat Client"); try { await _webSocket.ConnectAsync(); } catch (Exception ex) { _logger.Error(ex, "Error starting WebSocket client"); throw; } }
private async Task <bool> InitWs() { _ws = new PureWebSocket("wss://graphigostream.prd.dlive.tv", new PureWebSocketOptions { DebugMode = false, SubProtocols = new[] { "graphql-ws" } }); _ws.OnOpened += () => { _ws.SendAsync("{\"type\":\"connection_init\",\"payload\":{}}\t").Wait(); _ws.SendAsync("{\"id\":\"1\",\"type\":\"start\",\"payload\":{\"variables\":{\"streamer\":\"" + _blockchainName + "\"},\"extensions\":{\"persistedQuery\":{\"version\":1,\"sha256Hash\":\"916cddf76e8b906a0a39ed0d9ecb2e3b603733cd91ea69235da267084f63f8ad\"}},\"operationName\":\"StreamMessageSubscription\",\"query\":\"subscription StreamMessageSubscription($streamer: String!) {\\n streamMessageReceived(streamer: $streamer) {\\n type\\n ... on ChatGift {\\n id\\n gift\\n amount\\n recentCount\\n expireDuration\\n ...VStreamChatSenderInfoFrag\\n __typename\\n }\\n ... on ChatHost {\\n id\\n viewer\\n ...VStreamChatSenderInfoFrag\\n __typename\\n }\\n ... on ChatSubscription {\\n id\\n month\\n ...VStreamChatSenderInfoFrag\\n __typename\\n }\\n ... on ChatChangeMode {\\n mode\\n __typename\\n }\\n ... on ChatText {\\n id\\n content\\n ...VStreamChatSenderInfoFrag\\n __typename\\n }\\n ... on ChatFollow {\\n id\\n ...VStreamChatSenderInfoFrag\\n __typename\\n }\\n ... on ChatDelete {\\n ids\\n __typename\\n }\\n ... on ChatBan {\\n id\\n ...VStreamChatSenderInfoFrag\\n __typename\\n }\\n ... on ChatModerator {\\n id\\n ...VStreamChatSenderInfoFrag\\n add\\n __typename\\n }\\n ... on ChatEmoteAdd {\\n id\\n ...VStreamChatSenderInfoFrag\\n emote\\n __typename\\n }\\n ... on ChatTimeout {\\n id\\n ...VStreamChatSenderInfoFrag\\n minute\\n __typename\\n }\\n ... on ChatTCValueAdd {\\n id\\n ...VStreamChatSenderInfoFrag\\n amount\\n totalAmount\\n __typename\\n }\\n __typename\\n }\\n}\\n\\nfragment VStreamChatSenderInfoFrag on SenderInfo {\\n subscribing\\n role\\n roomRole\\n sender {\\n id\\n username\\n displayname\\n avatar\\n partnerStatus\\n badges\\n __typename\\n }\\n __typename\\n}\\n\"}}") .Wait(); }; _ws.OnMessage += OnWebsocketMessage; _ws.OnClosed += reason => { Events.FireOnDisconnect(); }; return(_ws.ConnectAsync().Result); }
public static async Task Connect(String chaveServicos, String codMotorista) { // _timer = new Timer(OnTickAsync, null, 2000, 1); if (_ws != null && _ws.State == WebSocketState.Open) { return; } //Verifico se servidor está disponível var client = new HttpClient { Timeout = TimeSpan.FromMilliseconds(8000), BaseAddress = new Uri("http://" + ViewModelBase.GetUrlBase() + "/motorapido/wes/") }; client.DefaultRequestHeaders.Add("Authentication", chaveServicos); try { var response = await client.GetAsync("motorista/ping"); Tuple <String, String> tupla = new Tuple <string, string>("Authentication", chaveServicos); List <Tuple <String, String> > lista = new List <Tuple <String, String> >(); lista.Add(tupla); tupla = new Tuple <string, string>("CodMotorista", codMotorista); lista.Add(tupla); IEnumerable <Tuple <String, String> > en = lista; var socketOptions = new PureWebSocketOptions() { DebugMode = true, SendDelay = 100, IgnoreCertErrors = true, MyReconnectStrategy = new ReconnectStrategy(2000, 4000, 20), Headers = en }; _ws = new PureWebSocket("ws://" + ViewModelBase.GetUrlBase() + "/motorapido/socket", socketOptions); _ws.OnStateChanged += Ws_OnStateChanged; _ws.OnMessage += Ws_OnMessage; _ws.OnClosed += Ws_OnClosed; _ws.OnSendFailed += Ws_OnSendFailed; var res = await _ws.ConnectAsync(); Console.ReadLine(); CrossSettings.Current.Remove("ServidorFora"); BackgroundAggregatorService.StopBackgroundService(); } catch (Exception e) { Crashes.TrackError(e); if (!CrossSettings.Current.Contains("ServidorFora")) { CrossSettings.Current.Set("ServidorFora", true); MessagingCenter.Send(new MensagemRespostaSocket() { msg = "Servidor indisponível!" }, "ErroPosicaoArea"); BackgroundAggregatorService.Add(() => new ChecagemServidorDisponivel()); BackgroundAggregatorService.StartBackgroundService(); } } }