Ejemplo n.º 1
0
        private void OnHandshakeCallback(HTTPRequest req, HTTPResponse resp)
        {
            HandshakeRequest = null;
            switch (req.State)
            {
            case HTTPRequestStates.Finished:
                if (resp.IsSuccess)
                {
                    HTTPManager.Logger.Information("HandshakeData", "Handshake data arrived: " + resp.DataAsText);
                    int num = resp.DataAsText.IndexOf("{");
                    if (num < 0)
                    {
                        RaiseOnError("Invalid handshake text: " + resp.DataAsText);
                    }
                    else
                    {
                        HandshakeData handshakeData = Parse(resp.DataAsText.Substring(num));
                        if (handshakeData == null)
                        {
                            RaiseOnError("Parsing Handshake data failed: " + resp.DataAsText);
                        }
                        else if (OnReceived != null)
                        {
                            OnReceived(this);
                            OnReceived = null;
                        }
                    }
                }
                else
                {
                    RaiseOnError($"Handshake request finished Successfully, but the server sent an error. Status Code: {resp.StatusCode}-{resp.Message} Message: {resp.DataAsText} Uri: {req.CurrentUri}");
                }
                break;

            case HTTPRequestStates.Error:
                RaiseOnError((req.Exception == null) ? string.Empty : (req.Exception.Message + " " + req.Exception.StackTrace));
                break;

            default:
                RaiseOnError(req.State.ToString());
                break;
            }
        }
Ejemplo n.º 2
0
 public void Open()
 {
     if (State == States.Initial || State == States.Closed || State == States.Reconnecting)
     {
         HTTPManager.Logger.Information("SocketManager", "Opening");
         ReconnectAt          = DateTime.MinValue;
         Handshake            = new HandshakeData(this);
         Handshake.OnReceived = delegate
         {
             CreateTransports();
         };
         Handshake.OnError = delegate(HandshakeData hsd, string err)
         {
             ((IManager)this).EmitError(SocketIOErrors.Internal, err);
             ((IManager)this).TryToReconnect();
         };
         Handshake.Start();
         ((IManager)this).EmitEvent("connecting", new object[0]);
         State             = States.Opening;
         ConnectionStarted = DateTime.UtcNow;
         HTTPManager.Heartbeats.Subscribe(this);
         GetSocket("/");
     }
 }