在Node.js上的相同地址服务WebSocket和HTTP服务器

我使用Node.js在端口8888上build立了一个Websocket服务器 。 我也有一个与Websocket后端交互的接口(聊天服务器)。

当使用浏览器访问服务器时,如何提供index.html(使用CSS / JS文件)?

如果你不想使用socket.io ,而是使用websocket包,你可以像下面这样使用它:

 // app.js var WebSocketServer = require('websocket').server; var express = require('express'); var app = express(); var server = app.listen(8888); var wsServer = new WebSocketServer({ httpServer : server }); // this will make Express serve your static files app.use(express.static(__dirname + '/public')); // the rest of your code wsServer.on('request', function(r) { ... 

express.static会照顾你的HTML / CSS / JS文件。 您传递的参数是这些文件所在的目录(在这种情况下,是public/相对于app.js所在的目录)。

这里有一些好的要点是如何build立一个websocket服务器包括。 为这个服务的webapp:

这里也有一个类似的问题:

  • 如何在同一个端口上使用ExpressJS和Socket.io?
  • Express&Socket.io路由parroting /复制/共享