【问题标题】:How to connect to a external websocket using node JS?如何使用节点 JS 连接到外部 websocket?
【发布时间】:2022-01-23 03:18:33
【问题描述】:

我需要使用 node JS 连接到外部 websocket,但我在网上找到的每个教程都只是关于创建服务器/客户端并相互连接。我已经有一个带有我需要访问的 websocket 的外部 url(即使它连接到我的网络,我也无法控制它,所以我不会创建服务器或类似的东西)。 就是这么简单;使用 Node JS Websocket/socket.io 连接到外部 URL。 到目前为止,我有这段代码,但很有可能它是完全错误的,因为我在 Node JS 方面不是很有经验。所以请随意完全改变它。无需尝试升级。

io = require('socket.io-client');
var socket = io.connect('MY.WEBSOCKET.ADDRESS');

function doStuff(){


//Listener
socket.on('connection', function(){
   try {
      console.log('connected!');
   }
});
}


doStuff();

我做错了什么?

【问题讨论】:

  • 如果外部服务器是普通的 webSocket 服务器,那么你不能使用 socket.io 客户端连接到 webSocket 服务器。您必须使用 webSocket 客户端。虽然 socket.io 可以使用 webSocket 作为传输,但它有自己的连接层,您不能直接将 socket.io 客户端连接到 webSocket 服务器。所以,你需要一个普通的 webSocket 客户端库。
  • 我相信它是一个普通的 websocket 服务器。你知道我可以使用什么好的图书馆吗?或者我可以在没有任何库的情况下使用 vanilla Node JS 吗?

标签: javascript node.js websocket


【解决方案1】:

由于外部服务器是普通的 webSocket 服务器,因此您不能使用 socket.io 客户端连接到 webSocket 服务器。您必须使用 webSocket 客户端。虽然 socket.io 可以使用 webSocket 作为传输,但它有自己的连接层,您不能直接将 socket.io 客户端连接到 webSocket 服务器。 因此,您需要一个用于 nodejs 的普通 webSocket 客户端库。

Nodejs 没有内置的 webSocket 支持,因此您可以在 NPM 上使用这两个库之一,它们都具有对 nodejs 的 webSocket 客户端支持:

https://www.npmjs.com/package/websocket

https://www.npmjs.com/package/ws

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    相关资源
    最近更新 更多