public WebServer(int port, bool localOnly, ReqRespHandler<HttpRequest, HttpResponse> reqHandler)
        {
            this.reqHandler = reqHandler;

            int maxNumberOfConnections = 1000;
            int excessSaeaObjectsInPool = 200;
            int backlog = 100;
            int maxSimultaneousAcceptOps = 100;

            var setting = new NewConnListenerSettings(maxNumberOfConnections,
                   excessSaeaObjectsInPool,
                   backlog,
                   maxSimultaneousAcceptOps,
                   new IPEndPoint(localOnly ? IPAddress.Loopback : IPAddress.Any, port));//check only local host or not

            CreateContextPool(maxNumberOfConnections);
            newConnListener = new NewConnectionListener(setting,
                clientSocket =>
                {
                    //when accept new client
                    HttpContext context = this.contextPool.Pop();
                    context.BindSocket(clientSocket); //*** bind to client socket 
                    context.StartReceive(); //start receive data
                });
        }
Пример #2
0
        public WebServer(int port, bool localOnly, ReqRespHandler <HttpRequest, HttpResponse> reqHandler)
        {
            this.reqHandler = reqHandler;

            int maxNumberOfConnections  = 1000;
            int excessSaeaObjectsInPool = 200;
            int backlog = 100;
            int maxSimultaneousAcceptOps = 100;

            var setting = new NewConnListenerSettings(maxNumberOfConnections,
                                                      excessSaeaObjectsInPool,
                                                      backlog,
                                                      maxSimultaneousAcceptOps,
                                                      new IPEndPoint(localOnly ? IPAddress.Loopback : IPAddress.Any, port));//check only local host or not

            CreateContextPool(maxNumberOfConnections);
            newConnListener = new NewConnectionListener(setting,
                                                        clientSocket =>
            {
                //when accept new client
                HttpContext context = this.contextPool.Pop();
                context.BindSocket(clientSocket); //*** bind to client socket
                context.StartReceive();           //start receive data
            });
        }
        public WebSocketContext(WebSocketServer webSocketServer, ReqRespHandler<WebSocketRequest, WebSocketResponse> webSocketReqHandler)
        {
            this.webSocketReqHandler = webSocketReqHandler;
            this.webSocketServer = webSocketServer;
            connectionId = System.Threading.Interlocked.Increment(ref connectionIdTotal);
            //-------------------
            //send,resp 
            sockAsyncSender = new SocketAsyncEventArgs();
            sockAsyncSender.SetBuffer(new byte[RECV_BUFF_SIZE], 0, RECV_BUFF_SIZE); 
            sendIO = new SendIO(sockAsyncSender, 0, RECV_BUFF_SIZE, sendIO_SendCompleted);
            sockAsyncSender.Completed += new EventHandler<SocketAsyncEventArgs>((s, e) =>
            {
                switch (e.LastOperation)
                {
                    default:
                        {
                        }
                        break;
                    case SocketAsyncOperation.Send:
                        {
                            sendIO.ProcessWaitingData();
                        }
                        break;
                    case SocketAsyncOperation.Receive:
                        {
                        }
                        break;
                }
            });
            webSocketResp = new WebSocketResponse(this, sendIO);

            //------------------------------------------------------------------------------------
            //recv,req ,new socket
            sockAsyncListener = new SocketAsyncEventArgs();
            sockAsyncListener.SetBuffer(new byte[RECV_BUFF_SIZE], 0, RECV_BUFF_SIZE);
            recvIO = new RecvIO(sockAsyncListener, 0, RECV_BUFF_SIZE, HandleReceivedData);
            sockAsyncListener.Completed += new EventHandler<SocketAsyncEventArgs>((s, e) =>
            {
                switch (e.LastOperation)
                {
                    default:
                        {
                        }
                        break;
                    case SocketAsyncOperation.Send:
                        {
                        }
                        break;
                    case SocketAsyncOperation.Receive:
                        {
                            recvIO.ProcessReceivedData();
                        }
                        break;
                }
            });
            //------------------------------------------------------------------------------------             
            this.webSocketReqParser = new WebSocketProtocolParser(recvIO);

        }
 public HttpWebServer(
     int port,
     bool localOnly,
     ReqRespHandler <HttpRequest, HttpResponse> reqHandler)
 {
     _port       = port;
     _localOnly  = localOnly;
     _reqHandler = reqHandler;
 }
Пример #5
0
 internal void BindReqHandler(ReqRespHandler <HttpRequest, HttpResponse> reqHandler)
 {
     _reqHandler = reqHandler;
 }
Пример #6
0
 public void SetMessageHandler(ReqRespHandler <WebSocketRequest, WebSocketResponse> webSocketReqHandler)
 {
     _webSocketConn.SetMessageHandler(webSocketReqHandler);
 }
 public WebSocketServer(ReqRespHandler<WebSocketRequest, WebSocketResponse> webSocketReqHandler)
 {
     this.webSocketReqHandler = webSocketReqHandler;
 }
Пример #8
0
 public void SetMessageHandler(ReqRespHandler <WebSocketRequest, WebSocketResponse> webSocketReqHandler)
 {
     this.webSocketReqHandler = webSocketReqHandler;
 }
 public void SetHandler(ReqRespHandler <WebSocketRequest, WebSocketResponse> websocketHandler)
 {
     _websocketHandler = websocketHandler;
 }
Пример #10
0
 public void SetHandler(ReqRespHandler <WebSocketRequest, WebSocketResponse> websocketHandler)
 {
     //set external msg handler
     _websocketHandler = websocketHandler;
 }
 internal void BindReqHandler(ReqRespHandler<HttpRequest, HttpResponse> reqHandler)
 {
     this.reqHandler = reqHandler;
 }
 public void SetMessageHandler(ReqRespHandler<WebSocketRequest, WebSocketResponse> webSocketReqHandler)
 {
     this.webSocketReqHandler = webSocketReqHandler;
 }