[英]Socket.io emitting events inside other server files
是否可以在其他node.js服务器文件中发出事件? 就像我运行app.js一样,也运行其他文件。
在我的其他服务器文件中
var io = require('socket.io');
进一步在这样的文件中(我想将这些数据 - 价格发送给客户)。
io.emit('price', { price: price});
我得到的错误是io.emit不是一个函数。 知道我做错了什么吗?
您需要有一个连接到您的Web服务器的io
对象(以接收传入的socket.io连接),然后您需要共享(通过导出或通过调用函数并传递io
对象)一个io
对象与任何其他想要使用它的文件。
您没有显示很多代码,但想象您在主Express文件中初始化socket.io:
app.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);
msg.js
// define module constructor that accepts the io variable
var io;
module.exports = function(importIO) {
io = importIO;
}
// elsewhere in the module
io.emit(...)
我改成了
var io = require('socket.io')();
它现在正在工作(不是拉错误)但仍然没有发送给客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.