我是SocketIO的新手,我参考了许多关于套接字的博客和文档,我们首先需要创建一个HTTP服务器,然后像这样将套接字连接到它上-
var app = express();
var httpServer = http.createServer(app);
var io = socketio.listen(httpServer);
第二行是什么意思?为什么我们要创建一个额外的HTTP服务器,而express(web框架(已经定义好了?因为我从来没有为我的RESTful应用程序创建过一个新的HTTP实例,所以我只听了下面这样的express实例-
var express = require('express');
var app = express();
app.listen(8000);
提前感谢!
如果您希望socket.io在与web服务器相同的端口上运行,那么您可以使用相同的服务器实例。如果希望socket.io在其他端口上运行,则在该端口上创建一个新的服务器实例,供socket.io使用。
Socket.io使用与Express相同的端口和服务器实例运行得很好,所以除非您有特定的理由在不同的端口上运行它,否则这是配置它的常用方式。
socket.io的一些代码示例单独显示了它,因此他们必须创建一个http服务器供其使用。
使用Express时,您可以获得如下服务器实例:
const express = require('express');
const socketio = require('socket.io');
const app = express();
const server = app.listen(8000);
const io = socketio(server);