在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:
- https://gist.github.com/johnhunter/1456613(express.js + socket.io)
- https://gist.github.com/damianb/4190316(expressjs + socket.io +护照+ redis)
这里也有一个类似的问题:
- 如何在同一个端口上使用ExpressJS和Socket.io?
- Express&Socket.io路由parroting /复制/共享