protected virtual void ConnectionUpgradeWebsocket(HttpRequest request, HttpResponse response) { WebSocketConnectArgs wsca = new WebSocketConnectArgs(request); wsca.Request = request; WebSocketConnect?.Invoke(this, wsca); if (wsca.Cancel) { response.Session.Dispose(); } else { response.ConnectionUpgradeWebsocket(request.Header[HeaderType.SEC_WEBSOCKET_KEY]); request.Session.Send(response); } }
protected virtual void ConnectionUpgradeWebsocket(HttpRequest request, HttpResponse response) { WebSocketConnectArgs wsca = new WebSocketConnectArgs(request); wsca.Request = request; WebSocketConnect?.Invoke(this, wsca); if (wsca.Cancel) { if (EnableLog(LogType.Warring)) { mServer.Log(LogType.Warring, request.Session, "{0} cancel upgrade to websocket", request.Session.RemoteEndPoint); } response.Session.Dispose(); } else { UpgradeWebsocketResult upgradeWebsocket = new UpgradeWebsocketResult(request.Header[HeaderTypeFactory.SEC_WEBSOCKET_KEY]); response.Result(upgradeWebsocket); } }