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

Ben*_*wis 12 javascript node.js

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

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

rob*_*lep 20

如果您不想使用socket.io,但是websocket包,您可以将它与Express结合使用,如下所示:

// 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) { ...
Run Code Online (Sandbox Code Playgroud)

express.static将负责提供您的HTML/CSS/JS文件.您传递的参数是这些文件所在的目录(在本例中,是public/相对于where 的目录app.js).

  • 尝试在客户端文件中使用`new WebSocket('ws://'+ location.host)`. (3认同)