private Task ProcessNegotiationRequest(HostContext context) { // Total amount of time without a keep alive before the client should attempt to reconnect in seconds. var keepAliveTimeout = _configurationManager.KeepAliveTimeout(); string connectionId = Guid.NewGuid().ToString("d"); string connectionToken = connectionId + ':' + GetUserIdentity(context); var payload = new { Url = context.Request.Url.LocalPath.Replace("/negotiate", ""), ConnectionToken = ProtectedData.Protect(connectionToken, Purposes.ConnectionToken), ConnectionId = connectionId, KeepAliveTimeout = keepAliveTimeout != null ? keepAliveTimeout.Value.TotalSeconds : (double?)null, DisconnectTimeout = _configurationManager.DisconnectTimeout.TotalSeconds, TryWebSockets = _transportManager.SupportsTransport(WebSocketsTransportName) && context.SupportsWebSockets(), WebSocketServerUrl = context.WebSocketServerUrl(), ProtocolVersion = "1.2" }; if (!String.IsNullOrEmpty(context.Request.QueryString["callback"])) { return(ProcessJsonpRequest(context, payload)); } context.Response.ContentType = JsonUtility.JsonMimeType; return(context.Response.End(JsonSerializer.Stringify(payload))); }
private Task ProcessNegotiationRequest(HostContext context) { var keepAlive = _configurationManager.KeepAlive; var payload = new { Url = context.Request.Url.LocalPath.Replace("/negotiate", ""), ConnectionId = _connectionIdPrefixGenerator.GenerateConnectionIdPrefix(context.Request) + Guid.NewGuid().ToString("d"), KeepAlive = (keepAlive != null) ? keepAlive.Value.TotalSeconds : (double?)null, TryWebSockets = _transportManager.SupportsTransport(WebSocketsTransportName) && context.SupportsWebSockets(), WebSocketServerUrl = context.WebSocketServerUrl(), ProtocolVersion = "1.0" }; if (!String.IsNullOrEmpty(context.Request.QueryString["callback"])) { return(ProcessJsonpNegotiationRequest(context, payload)); } context.Response.ContentType = Json.MimeType; return(context.Response.EndAsync(_jsonSerializer.Stringify(payload))); }
private Task ProcessNegotiationRequest(HostContext context) { var keepAlive = _configurationManager.KeepAlive; var payload = new { Url = context.Request.Url.LocalPath.Replace("/negotiate", ""), ConnectionId = _connectionIdPrefixGenerator.GenerateConnectionIdPrefix(context.Request) + Guid.NewGuid().ToString("d"), KeepAlive = (keepAlive != null) ? keepAlive.Value.TotalSeconds : (double?)null, TryWebSockets = _transportManager.SupportsTransport(WebSocketsTransportName) && context.SupportsWebSockets(), WebSocketServerUrl = context.WebSocketServerUrl(), ProtocolVersion = "1.0" }; if (!String.IsNullOrEmpty(context.Request.QueryString["callback"])) { return ProcessJsonpNegotiationRequest(context, payload); } context.Response.ContentType = Json.MimeType; return context.Response.EndAsync(_jsonSerializer.Stringify(payload)); }