【问题标题】:How to reach socket.io clients from API routes如何从 API 路由访问 socket.io 客户端
【发布时间】:2013-10-22 19:42:12
【问题描述】:

我连接了 x 个客户端。

如果我的 API 发生问题,这意味着如果我从 3 个部分接收数据,我如何将其推送到特定客户端?

var socketio = require('socket.io');
exports.socketServer = function (app, server) {
  var clients = [];
  var io = socketio.listen(server);
  io.sockets.on('connection', function (socket) {

  });
});

示例 API/回调(在另一个文件中)

exports.callback = function(req, res){
    //how do reach my socket.io and my clients from here
};

【问题讨论】:

  • 您需要针对特定​​客户,还是只想向所有客户发送消息?

标签: node.js express socket.io


【解决方案1】:

您可以传递 io。这是一种方法,在 API/回调文件中

var io;

var initializeSocket = function (socket) {
    io = socket;
}

var callback = function (req, res) {
    // your code here and which will have a reference to io object
}

module.exports = {callback: callback, initializeSocket: initializeSocket};

在此之前,您必须使用 io 对象从此处调用该 Api/回调模块的 initializeSocket 方法,

var socketio = require('socket.io');
var Api = require(./location_to_your_Api_callback_file);

exports.socketServer = function (app, server) {
  var clients = [];
  var io = socketio.listen(server);
  Api.initilizeSocket(io);
  io.sockets.on('connection', function (socket) {

  });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-11
    • 2021-04-27
    • 1970-01-01
    • 2017-09-20
    • 2022-10-31
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多