如何使用节点 JS 连接到外部 websocket?

How to connect to a external websocket using node JS?

我需要使用 node JS 连接到外部 websocket,但是我在网上找到的每一个教程都只是关于创建 server/client 和相互连接的。我 已经 有一个外部 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 服务器。 因此,您需要一个用于 nodejs 的普通 webSocket 客户端库。

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

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

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