private void OnHandleRequestIOCPThread(IHttpClientContext context, IHttpRequest request) { OSHttpRequest req = new OSHttpRequest(context, request); WebSocketRequestDelegate dWebSocketRequestDelegate = null; lock (m_WebSocketHandlers) { if (m_WebSocketHandlers.ContainsKey(req.RawUrl)) { dWebSocketRequestDelegate = m_WebSocketHandlers[req.RawUrl]; } } if (dWebSocketRequestDelegate != null) { dWebSocketRequestDelegate(req.Url.AbsolutePath, new WebSocketHttpServerHandler(req, context, 8192)); return; } if (req.ContentType != null && req.ContentType.ToLowerInvariant() == "application/x-www-form-urlencoded") { IHttpClientContext postcontext = (IHttpClientContext)context; FormDecoderProvider provider = new FormDecoderProvider(); provider.Add(new UrlDecoder()); } OSHttpResponse resp = new OSHttpResponse(new HttpResponse(context, request), context); HandleRequest(req, resp); }
public void AddWebSocketHandler(string servicepath, WebSocketRequestDelegate handler) { lock (m_WebSocketHandlers) { if (!m_WebSocketHandlers.ContainsKey(servicepath)) { m_WebSocketHandlers.Add(servicepath, handler); } } }
public void AddWebSocketHandler(string servicepath, WebSocketRequestDelegate handler) { lock (m_WebSocketHandlers) { if (!m_WebSocketHandlers.ContainsKey(servicepath)) m_WebSocketHandlers.Add(servicepath, handler); } }
public void AddWebSocketHandler(string servicepath, WebSocketRequestDelegate handler) { try { m_WebSocketHandlers.AddIfNotExists(servicepath, delegate() { return handler; }); } catch(ThreadedClasses.RwLockedDictionary<string, WebSocketRequestDelegate>.KeyAlreadyExistsException) { } }