public async Task InvokeOpenedAsync(OpenedArgs args) { await Task.Factory.StartNew(async() => { if (_namespace != null) { await SendMessageAsync("40" + _namespace); } State = SocketIOState.Connected; while (true) { if (State == SocketIOState.Connected) { await Task.Delay(args.PingInterval); SendMessageAsync(((int)EngineIOProtocol.Ping).ToString()); _isHeartbeatFinished = false; _heartbeatDelay = 0; _isConnectTimeout = false; } else { break; } } }); }
public Task ParseAsync(ResponseTextParser rtp) { if (rtp.Text.StartsWith("0{\"sid\":\"")) { OpenedArgs args = (OpenedArgs)JsonConvert.DeserializeObject <OpenedArgs>(rtp.Text.TrimStart('0')); return(rtp.Socket.InvokeOpenedAsync(args)); } rtp.Parser = (IParser) new ConnectedParser(); return(rtp.ParseAsync()); }
private void OpenHandler(OpenedArgs args) { var task = Task.Factory.StartNew(async() => { if (_namespace != null) { await SendMessageAsync("40" + _namespace); } while (!_pingSource.Token.IsCancellationRequested) { await Task.Delay(args.PingInterval); await SendMessageAsync("2"); } }, _pingSource.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default); }
public async Task InvokeOpenedAsync(OpenedArgs args) { await Task.Factory.StartNew(async() => { if (_namespace != null) { SendMessage("40" + _namespace); } State = SocketState.Connected; while (true) { if (State == SocketState.Connected) { await Task.Delay(args.PingInterval); SendMessage(((int)EngineIOProtocol.Ping).ToString()); } else { break; } } }); }