Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将socket.io与express 4生成器一起使用_Javascript_Node.js_Sockets_Socket.io_Express Generator - Fatal编程技术网

Javascript 将socket.io与express 4生成器一起使用

Javascript 将socket.io与express 4生成器一起使用,javascript,node.js,sockets,socket.io,express-generator,Javascript,Node.js,Sockets,Socket.io,Express Generator,新节点,所以我道歉。 我正在使用我的应用程序,我想使用socket.io发送位置。我找到了1000个例子,但都是关于express没有路线的时候,都是在app.js上。所有示例都涉及聊天应用程序。 我能够运行一个示例,将我搜索的几个问题拼凑在一起,但是,我不知道如何让我最终在app.js上得到的io与index.js交互,以便我可以将它与多个emit参数一起使用。express.io已过时,我找不到任何最新内容。 关于bin/www /** * Socket.io */ var io = a

新节点,所以我道歉。 我正在使用我的应用程序,我想使用socket.io发送位置。我找到了1000个例子,但都是关于express没有路线的时候,都是在app.js上。所有示例都涉及聊天应用程序。 我能够运行一个示例,将我搜索的几个问题拼凑在一起,但是,我不知道如何让我最终在app.js上得到的io与index.js交互,以便我可以将它与多个emit参数一起使用。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设置。节点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);
就像在电影里一样

现在有了
app.js
中的
io
,我们可以在需要路由时使用它。我忘了默认路线是如何设置的,但我认为他们设置了一个
应用程序
,然后将其导出。相反,您可以设置如下内容

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);

这就是你如何进入你的路线的方法。或者至少我是怎么做的。

我不得不说,我认为默认生成的项目不适合socket.io设置。节点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);
就像在电影里一样

现在有了
app.js
中的
io
,我们可以在需要路由时使用它。我忘了默认路线是如何设置的,但我认为他们设置了一个
应用程序
,然后将其导出。相反,您可以设置如下内容

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);
这就是你如何进入你的路线的方法。或者至少我是怎么做的