gpt4 book ai didi

javascript - 将 socket.io 与 Express 4 生成器一起使用

转载 作者:行者123 更新时间:2023-11-28 19:09:23 24 4
gpt4 key购买 nike

新来的 Node ,所以我很抱歉。我正在开发我的应用程序,我想使用 socket.io 发送位置。我找到了 1000 个例子,但都是指 Express 没有路线时的情况,而且都在 app.js 中。所有示例均指聊天应用程序。我能够运行一个示例,将我搜索的几个问题拼凑在一起,但是,我不明白如何让我最终在 app.js 上工作的 io 与我的 index.js 交互,以便我可以将它与多个发射一起使用参数。 express.io 已过时,我找不到任何最新内容。在 bin/www 上

/**
* Socket.io
*/
var io = app.io
io.attach( server );

我的app.js

var socket_io = require('socket.io');

var app = express();

var io = socket_io();
app.io = io;

所以我可以使用:

io.on('connection', function (socket) {
console.log('IO Ready');
});

我不知道如何在我的index.js(路由)上使用套接字,我无法模块化它。

提前致谢。

最佳答案

我不得不说,我认为默认生成的项目对于 socket.io 设置来说是不好的。 Node http.Server var 始终位于 bin/www 中,而不是位于 app.js 中。

因此,第一件事是将所有相关内容从 bin/www 移动到 app.js。主要是你只需要

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

就像 socket.io docs 中一样.

现在有了 app.js 中的 io,我们可以在需要路由时使用它。我忘记了默认路由的具体设置方式,但我认为他们设置了一个 app 并导出它。相反,您可以设置类似的内容

module.exports = function(app, io) {
io.on('connection', function(socket) {
console.log('connected!');
}

app.get('/foo', function() {
...
}
}

现在当您需要路由时,而不是使用默认路由

var index = require('./routes/index');
app.use(index);

或者类似的事情,你可以这样做

require('./routes/index')(app, io);

这就是将 io 添加到路由中的方法。或者至少我是如何做到的。

关于javascript - 将 socket.io 与 Express 4 生成器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016350/

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