Пример #1
0
        public void ProcessRequest(HttpContext context)
        {
            if (server == null)
            {
                lock (lockObj)
                {
                    if (server == null)
                    {
                        server = new RpcServer();
                        this.InitRpcServer(server);
                        (server as RpcServer).Start();
                    }
                }
            }
            IRpcHttpContext ctx = new WebHost.SystemWebHttpContext(context);

            if (!string.IsNullOrEmpty(ctx.Request.UserAgent) &&
                ctx.Request.UserAgent.IndexOf("RpcOverHttp", StringComparison.OrdinalIgnoreCase) != -1)
            {
                context.Response.TrySkipIisCustomErrors = true;
                server.ProcessRequest(ctx);
            }
            else if (ctx.IsWebSocketRequest)
            {
                ctx.AcceptWebSocket(server.ProcessWebsocketRequest);
            }
        }