当前位置: 首页 > 面试题库 >

是否可以设置在node.js服务器上运行(服务器端)的socket.io客户端?

劳嘉实
2023-03-14
问题内容

我想在两个或更多不同的node.js应用程序服务器之间启用基于套接字的p2p通信。我正在使用socket.io处理给定服务器与其服务的Web应用程序之间的所有此类通信-
但我正在寻找的是一种服务器与服务器之间进行通信的方法。

我最初以为它像这样简单:

var io = require("socket.io");
var socket = io.connect("my remote endpoint");

但是,事实证明,服务器端socket.io实现没有提供“连接”方法,仅提供了侦听方法。

为什么是这样?为什么不能将节点应用程序服务器视为在其他地方运行的socket.io服务器的客户端?有什么方法可以实现此功能?


问题答案:

好,所以感谢上面的评论中的@pimvdb,我有了一个可行的解决方案。

基本上,npm安装的socket.io库依赖于另一个模块,称为socket.io-
client。在标准的socket.io安装中,它将安装在node_modules / socket.io / node_modules /
socket.io-client中

但是,也可以说“ npm install socket.io-client”并将其安装为自己的一等公民库。

然后您的用法如下所示:

var client = require("socket.io-client");
var socket = client.connect("http://myendpoint.com:3000/whatever");
socket.emit("test", "foo");

一切正常。

所以,谢谢你!



 类似资料:
  • 问题内容: 我有一个socket.io服务器正在运行,并且有一个带有socket.io.js客户端的匹配网页。一切正常。 但是,我想知道是否有可能在另一台机器上运行一个单独的node.js应用程序,该应用程序充当客户端并连接到上述的socket.io服务器? 问题答案: 使用Socket.IO-client应该可以做到这一点:https : //github.com/LearnBoost/sock

  • 我试图将Node.js Socket.io客户机连接到Python/Flask Socket.io服务器。 在服务器(Raspberry Pi)上运行这个项目:pi-gpio-server。这个项目已经有了一个内置的网站,这是一个socket.io客户机来访问Raspberry PI的引脚。整个项目运作良好。 有什么想法吗,为什么我找不到联系?在Flask服务器中有客户机的限制吗?有什么特别的命令

  • 问题内容: 我使用以下行启动了node.js服务器来设置端口: 这意味着,它应该像本地运行时那样读取PORT env变量或默认为8080。它们都不在Heroku上发生,并且服务器始终使用默认端口80。如何更改该端口? 问题答案: 你不能 Heroku设置您应该绑定的PORT变量,并在tcp / 80上进行侦听。

  • 我使用的是hazelcast v3。2.4客户-

  • 问题内容: 我正在尝试通过SSL连接使用socket.io设置服务器到服务器的链接。这是我的例子: 在没有SSL的情况下运行时,代码工作正常。我怀疑这可能是我的自签名证书未被接受,但是我不知道如何使客户接受它。 请告诉我如何:1.接受自签名SSL证书。或2.以其他方式帮助我完成这项工作。 提前致谢。 问题答案: 经过更多搜索后,将其添加到客户端中使其可以工作: require(’https’)。g

  • 问题内容: 我正在使用google map version3 api的google map应用程序,特别是google.maps.geometry.encoding中的实用程序方法,例如decodePath,encodePath,computeDistanceBetween,interpolate,以便计算位置 在Web应用程序的第一个版本中,大多数应用程序逻辑都在Web浏览器中,现在我想将一些逻