首页 > 解决方案 > 从 Node.js 模块中访问 Socket.IO

问题描述

我正在使用 express 构建一个 node.js 应用程序。该应用程序大量利用了 socket.io,如下所示:

const express = require("express"),
      socketio = require("socket.io"),
      app = express(),
      server = http.createServer(app),
      io = socketio(server),

io.on("connection", function(socket) {
  socket.on("event", function() {
    // some logic here

    io.to(socket.id).emit("return-result)
  }
})

为了更好地组织我的代码,并避免拥有一个绝对巨大的server.js文件,我决定将套接字函数移动到一个单独的模块中,如下所示:

服务器.js

const express = require("express"),
      socketio = require("socket.io"),
      app = express(),
      server = http.createServer(app),
      io = socketio(server),

io.on("connection", socketFunctions.handleConnection)

套接字函数

module.exports = {
  handleConnection: function(socket) {
    socket.on("event", function() {
      // some logic here

      io.to(socket.id).emit("return-result)
    }
  }
}

但是,我对如何使用io.to将信息返回给用户感到有些困惑。任何人都可以建议我缺少什么以便能够io从该模块中访问吗?我确信这一切都非常基础,但恐怕我对 Node 的了解有点粗糙。

标签: node.jssocket.io

解决方案


推荐阅读