Exemple #1
0
 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());
 }
Exemple #3
0
 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);
 }
Exemple #4
0
 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;
             }
         }
     });
 }