【问题标题】:Require socket.io-client from installed socket.io package从已安装的 socket.io 包中需要 socket.io-client
【发布时间】:2015-04-03 10:23:48
【问题描述】:

根据socket.io-client readme,有一种方法可以从已安装的 socket.io 包中访问此模块。 the site 上也有类似的说明。然而,我设法“要求”socket.io-client 的唯一方法是使用可以说是 hacky:

require('socket.io/node_modules/socket.io-client')

要求这个包的正确引用方式是什么?

背景信息:我有一个运行 socket.io 服务器的 nodejs 模块(因此我安装了 socket.io),但我还想运行一个客户端,以便我可以连接到其他一些服务器。执行此操作的正常方法是 npm install socket.io-client 然后需要该包。但是由于 socket.io-client 是 socket.io 的依赖项,我想通过这个其他包来访问它。

【问题讨论】:

    标签: node.js socket.io client npm


    【解决方案1】:

    好的,这是一个新的答案,我知道你想从你的节点服务器发起 socket.io 连接。

    在 socket.io 文档中的 this page 上,它表明您可以这样做:

    var ioClient = require('socket.io-client');
    

    从您的服务器访问客户端 socket.io 功能。我自己没试过。

    这里还有一段服务器端客户端代码示例:https://www.npmjs.com/package/socket.io-client

    Node.JS(服务器端使用) 将 socket.io-client 添加到您的 package.json 中,然后:

    var socket = require('socket.io-client')('http://localhost');
    socket.on('connect', function(){});
    socket.on('event', function(data){});
    socket.on('disconnect', function(){});
    

    【讨论】:

    • 抱歉,我想我的问题不太清楚。我的意思是,从相同的 nodejs 脚本中,我希望同时运行服务器和客户端。服务器做自己的事情,客户端做自己的事情。当我在 npm 包中安装的只是 socket.io 时,我想知道如何“需要”socket.io-client。 (socket.io-client 是 socket.io 的一个依赖项,因此它应该可以很好地访问。) e:感谢您的回复,至少我现在知道文档所指的内容。 :)
    • @jarekwg - 我已经重做我的答案,因为我知道你想从你的 nodejs 服务器启动 socket.io 连接。看起来你可以通过 socket.io-client 模块做到这一点。
    • require('socket.io-client') 抱怨找不到模块,而将其包含在 package.json 中有效,但会导致客户端模块重复。
    • @jarekwg - 我认为你必须得到那个 socket.io-client 模块。
    猜你喜欢
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 2023-03-18
    • 1970-01-01
    • 2014-04-14
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多