NodeJS 连接到另一台服务器上的 wss

www*_*ser 1 websocket node.js express socket.io

我想连接到另一台服务器上的 wss。假设它的地址是:wss://123.123.123.12:8843

我有一个 nodejs/expressjs 应用程序。如何使用 socket.io 连接到它?我知道如何为服务器/客户端设置实现 socket.io,但如何为两台服务器(其中一台我无权访问)执行此操作。

如何设置我的expressjs应用程序以连接到wss?有没有办法使用 socket.io 或者我需要用另一种方式来做?

hex*_*ide 7

Socket.IO 不是 WebSocket。它是一个支持 WebSocket 的传输系统,但如果您想与其他 WebSocket 进行交互,那么最好使用Socket.IO 内部使用的ws模块。这是它的使用方式:

var WebSocket = require('ws');
var ws = new WebSocket('ws://www.host.com/path');
ws.on('open', function() {
    ws.send('something');
});
ws.on('message', function(data, flags) {
    // flags.binary will be set if a binary data is received
    // flags.masked will be set if the data was masked
});
Run Code Online (Sandbox Code Playgroud)

如果您实际上只想与另一个 Socket.IO 服务器通信,则在服务器上安装客户端。它的使用方式与浏览器客户端的使用方式相同。

npm install socket.io-client
Run Code Online (Sandbox Code Playgroud)

然后用法:

var socket = require('socket.io')('http://host/path');
socket.on('connect', function() {
  socket.on('event', function(data) { });
  socket.on('disconnect', function() { });
});
Run Code Online (Sandbox Code Playgroud)