コード例 #1
0
 public WebSocketHandshake(IPEndPoint localEndpoint, IPEndPoint remoteEndpoint)
 {
     Request  = new WebSocketHttpRequest(localEndpoint, remoteEndpoint);
     Response = new WebSocketHttpResponse();
     NegotiatedMessageExtensions = new List <IWebSocketMessageExtensionContext>();
     _invalidated = false;
 }
コード例 #2
0
 public WebSocketHandshake()
 {
     Request = new WebSocketHttpRequest();
     Response = new WebSocketHttpResponse();
     NegotiatedMessageExtensions = new List<IWebSocketMessageExtensionContext>();
     _invalidated = false;
 }
コード例 #3
0
 public WebSocketHandshake()
 {
     Request  = new WebSocketHttpRequest();
     Response = new WebSocketHttpResponse();
     NegotiatedMessageExtensions = new List <IWebSocketMessageExtensionContext>();
     HasSubProtocolMatch         = true;
     _invalidated = false;
 }
コード例 #4
0
        public WebSocketHandshake([NotNull] WebSocketHttpRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            this.Id       = Interlocked.Increment(ref LastId);
            this.Request  = request;
            this.Response = new WebSocketHttpResponse();
            this.NegotiatedMessageExtensions = new List <IWebSocketMessageExtensionContext>();
        }
コード例 #5
0
        protected WebSocket([NotNull] WebSocketHttpRequest request, [NotNull] WebSocketHttpResponse response)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (response == null)
            {
                throw new ArgumentNullException(nameof(response));
            }

            this.HttpRequest  = request;
            this.HttpResponse = response;
        }
コード例 #6
0
        protected WebSocket(WebSocketHttpRequest request, WebSocketHttpResponse response)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (response == null)
            {
                throw new ArgumentNullException(nameof(response));
            }

            HttpRequest  = request;
            HttpResponse = response;
        }
コード例 #7
0
        private void HttpNegotiation(WebSocketHttpRequest request, WebSocketHttpResponse response)
        {
            Guid connectionId = Guid.Empty;
            if (request.RequestUri == null || request.RequestUri.OriginalString.Length < 1 || !Guid.TryParse(request.RequestUri.OriginalString.Substring(1), out connectionId))
            {
                connectionId = _sysInfo.Guid();
                _log.Info("Connection Id created: {0}", connectionId);
            }
            else
                _log.Info("Connection Id from url: {0}", connectionId);

            request.Items.Add(ConnectionIdKey, connectionId);

            Guid userId;
            if (request.Cookies[ConnectionManager.UserSessionCookieName] == null)
            {
                userId = _sysInfo.Guid();
                _log.Info("User ID created: {0}", userId);
            }
            else
            {
                userId = Guid.Parse(request.Cookies[ConnectionManager.UserSessionCookieName].Value);
                _log.Info("User ID found in cookie: {0}", userId);
            }
            
           Queue.PublishRequest(new ConnectionConnectRequest(connectionId, userId), ctx =>
            {
                ctx.HandleFault(f =>
                {
                    response.Status = HttpStatusCode.InternalServerError;
                });
                ctx.HandleTimeout(TimeSpan.FromSeconds(5), () =>
                {
                    response.Status = HttpStatusCode.RequestTimeout;
                });
                ctx.Handle<ConnectionConnectResponse>(res =>
                {
                    response.Cookies.Add(new Cookie(ConnectionManager.UserSessionCookieName, res.UserId.ToString()));
                });
            });
        }
コード例 #8
0
 public abstract WebSocket CreateWebSocket(Stream stream, WebSocketListenerOptions options, IPEndPoint localEndpoint, IPEndPoint remoteEndpoint, WebSocketHttpRequest httpRequest, WebSocketHttpResponse httpResponse, List<IWebSocketMessageExtensionContext> negotiatedExtensions);
コード例 #9
0
 public WebSocket(WebSocketHttpRequest request, WebSocketHttpResponse response)
 {
     HttpRequest  = request;
     HttpResponse = response;
 }
コード例 #10
0
 public WebSocket(WebSocketHttpRequest request, WebSocketHttpResponse response)
 {
     Guid         = Guid.NewGuid();
     HttpRequest  = request;
     HttpResponse = response;
 }
コード例 #11
0
 public WebSocket(WebSocketHttpRequest request, WebSocketHttpResponse response)
 {
     HttpRequest = request;
     HttpResponse = response;
 }
コード例 #12
0
 public abstract WebSocket CreateWebSocket(Stream stream, WebSocketListenerOptions options, IPEndPoint localEndpoint, IPEndPoint remoteEndpoint, WebSocketHttpRequest httpRequest, WebSocketHttpResponse httpResponse, List <IWebSocketMessageExtensionContext> negotiatedExtensions);
コード例 #13
0
 internal WebSocketHandshake()
 {
     Request      = new WebSocketHttpRequest();
     Response     = new WebSocketHttpResponse();
     _invalidated = false;
 }
コード例 #14
0
 public abstract WebSocket CreateWebSocket(NetworkConnection networkConnection, WebSocketListenerOptions options, WebSocketHttpRequest httpRequest, WebSocketHttpResponse httpResponse, List <IWebSocketMessageExtensionContext> negotiatedExtensions);