在socket.io网页上,使用socket.io作为跨浏览器websocket的服务器示例很简单:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.on('message', function () { });
socket.on('disconnect', function () { });
});
但是,我看到的所有使用socket.io的例子都包括一个web服务器,如express或内置在'http'模块中的node。我一直在我的本地机器上使用socket.io,但是我想知道使用带有socket.io的http服务器的优点是什么以及何时需要?
答案 0 :(得分:3)
Websocket请求和HTTP请求是不同的东西(即使它们看起来很相似)并且需要不同的服务器来处理它们。如果您只想处理websocket流量,那么您的示例就完全没问题了。但是,大多数涉及websockets的项目都是大型Web应用程序的一部分,它也处理常规HTTP流量(将服务器HTML和静态文件传递给浏览器,处理REST API调用等),因此您经常会看到这两个服务器(HTTP和Websocket)一起工作。一个常见的例子是使用Express和Socket.io作为完整的HTTP + Websockets解决方案。