Websockets – 如何编写没有任何节点框架的服务器

我有以下Websocket客户端代码。 我为我的服务器使用nodeJS。 但是在使用这个客户端代码的时候,我closures了连接 我不知道我错过了什么。 使用ws或express框架来写服务器是强制的吗? 如果可能的话,我想写一个不使用这些框架。

// Let us open a web socket var ws = new WebSocket("ws://server.domain.com:8080/pa"); ws.onopen = function() { // Web Socket is connected, send data using send() ws.send("Message to send"); alert("Message is sent..."); }; ws.onmessage = function (evt) { var received_msg = evt.data; alert("Message is received..."); }; ws.onclose = function() { // websocket is closed. alert("Connection is closed..."); }; 

Server.js

 var http = require('http'); http.createServer(function(request, response) { request.on('error', function(err) { console.error(err); response.statusCode = 400; response.end(); }); response.on('error', function(err) { console.error(err); }); response.writeHead(200, {'Content-Type': 'application/json'}); var body=[]; if (request.method === 'GET' && request.url === '/pa') { response.end(JSON.stringify({"action": "pa"})); } else if (request.method === 'GET' && request.url === '/pi') { response.end(JSON.stringify({"action": "pi"})); } else { response.statusCode = 404; response.end(); } }).listen(8080); 

为什么你想写一个没有任何框架/模块的服务器? 这是为了教育目的吗?

文明,特别是信息技术已经到了现在的位置,因为我们可以build立在别人已经做的事情上。 故意重新发明轮子是没有用的。

因此,请随意使用适合您需求的模块,并在这些模块的基础上创build新的function,从而进一步构build世界一砖。

编辑:我觉得这个答案不能令人满意,因为它没有提供答案。

我认为解决scheme在于npm企业( https://www.npmjs.com/enterprise )。 这解决了企业可能使用节点模块的异议。 它为您提供了两全其美的优势:节点模块的多样性的力量,以及在企业边界内pipe理的代码的控制和安全性。