Socket.io在其他服务器文件中发出事件

时间:2015-11-16 00:07:57

标签: javascript node.js sockets socket.io

是否可以在其他node.js服务器文件中发出事件? 就像我运行了app.js一样,还运行了另一个文件。

在我有的其他服务器文件中

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

此外文件中的内容(我想将此数据 - 价格发送给客户)。

io.emit('price', { price: price});

我得到的错误是io.emit不是一个函数。知道我做错了吗?

2 个答案:

答案 0 :(得分:2)

您需要有一个挂接到您的Web服务器的io对象(以接收传入的socket.io连接),然后您需要共享(通过导出或通过调用函数并传递{{1对象)一个io对象与任何其他想要使用它的文件。

您不会显示很多代码,但想象您在主快捷文件中初始化socket.io:

app.js

io

msg.js

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

// load msg module and give it the io variable
var msg = require('./msg.js')(io);

答案 1 :(得分:0)

我把它改成了

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

它现在正在工作(没有提出错误),但仍未将其发送给客户。