gpt4 book ai didi

javascript - Express >4.0 版本的 Socket.io 和 Node.js

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:00 24 4
gpt4 key购买 nike

我已经阅读了一些有关该问题的其他帖子,但似乎没有理解正确。

socket.io“入门”演练已过时,并告诉您在 app.js 文件中执行操作。从 Express 4 开始,一切都在 www 文件中处理。

到目前为止一切顺利 - 应该没什么大不了的。

我使用以下命令将 socket.io 安装在正确的项目文件夹中:npm install --save socket.io

之后,我转到 bin/www 文件并添加了以下代码:

...
/**
* Create HTTP server.
*/

var server = http.createServer(app);

/**
* Socket IO
*/
var io = require('socket.io')(server);

/**
* Listen on provided port, on all network interfaces.
*/

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
...

现在我已经在 www 文件中添加了 socket.io,我将在 app.js 中添加以下代码。由于 app.js 不再处理我认为也必须进入 www 文件的内容:

io.on('connection', function(socket){
console.log('a user connected');
});

遗憾的是,我不知道如何访问 www 文件夹之外的变量 io。

我创建了一个/backend 路由,它应该动态显示所有在线用户。我如何访问该路径上的 io?

最佳答案

您可以将 www 文件中的以下代码放入某个单独的 socketjs 文件中。

socketjs 文件中的代码如下所示:-

module.exports = function (io) {
io.sockets.on('connection', function(socket) {
//..

}
}

通过这种方式,您可以在 www 文件中导入该 socketjs 文件,如下所示:-

    var app = express(),
server = require('http').createServer(app),
socket = require('./socket');

var io = require('socket.io').listen(server);

socket(io)

希望这对您有帮助。

关于javascript - Express >4.0 版本的 Socket.io 和 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33056082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com