mirror of
				https://github.com/gnh1201/welsonjs.git
				synced 2025-10-31 04:51:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| ////////////////////////////////////////////////////////////////////////
 | |
| // HTTPServer API
 | |
| ///////////////////////////////////////////////////////////////////////
 | |
| var HTTPServer = {
 | |
|     _this: this, // Avoid conflicts between HTTPServer and Winsock variables
 | |
| 
 | |
|     StatusCodes: {
 | |
|         100: "Continue",
 | |
|         200: "OK",
 | |
|         206: "Partial Content",
 | |
|         301: "Moved Permanently",
 | |
|         302: "Found",
 | |
|         304: "Not Modified",
 | |
|         400: "Bad Request",
 | |
|         401: "Unauthorized",
 | |
|         403: "Forbidden",
 | |
|         404: "Not Found",
 | |
|         500: "Internal Server Error",
 | |
|         503: "Service Unavailable"
 | |
|     },
 | |
| 
 | |
|     Listener: null,
 | |
| 
 | |
|     Connections: {},
 | |
| 
 | |
|     CreateWinsockObject: function() {
 | |
|         return CreateObject([
 | |
|             "MSWinsock.Winsock.1",
 | |
|             "MSWinsock.Winsock"
 | |
|         ], "listener_");
 | |
|     },
 | |
| 
 | |
|     Bind: function(port) {
 | |
|         try {
 | |
|             _this.Listener = _this.CreateWinsockObject();
 | |
|             _this.Listener.localPort = port;
 | |
|             _this.Listener.bind();
 | |
|             _this.Listener.listen();
 | |
|             console.info("Listening port: " + port);
 | |
|         } catch (e) {
 | |
|             console.error("port ", port, " could not bind: ", e.message);
 | |
|         }
 | |
|     },
 | |
| 
 | |
|     OnRequest: function(request, response) {
 | |
|         console.log("HTTPServer.OnRequest() dose not implemented");
 | |
|     },
 | |
| 
 | |
|     CreateServer: function(OnRequest) {
 | |
|         if (typeof OnRequest !== "function") {
 | |
|             throw new TypeError("OnRequest() must be a function.");
 | |
|         }
 | |
|         _this.OnRequest = OnRequest;
 | |
| 
 | |
|         return HTTPServer;
 | |
|     },
 | |
| 
 | |
|     ConnectionRequest: function(requestID) {
 | |
|         console.info("Connection request " + requestID);
 | |
| 
 | |
|         _this.Connections[requestID] = {
 | |
|             Listener: _this.CreateWinsockObject()
 | |
|         };
 | |
|         _this.Connections[requestID].Listener.accept(requestID);
 | |
|     },
 | |
| 
 | |
|     DataArrival: function(length) {
 | |
|         // TODO: DataArrival
 | |
|     },
 | |
| 
 | |
|     SendComplete: function() {
 | |
|         // TODO: SendComplete
 | |
|     }
 | |
| };
 | |
| 
 | |
| global.listener_ConnectionRequest = HTTPServer.ConnectionRequest;
 | |
| global.listener_DataArrival = HTTPServer.DataArrival;
 | |
| global.listener_SendComplete = HTTPServer.SendComplete;
 | |
| 
 | |
| exports = HTTPServer;
 |