繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM