【发布时间】:2018-11-10 02:52:55
【问题描述】:
我正在尝试学习 websocket 的工作原理。我能够从 websocket 服务器获取交易数据并将其打印在控制台上。但是,我试图了解如何将该消息传递到我的 websocket 服务器,以便我可以将它发送到我的 websocket 客户端。基本上,我想在浏览器上打印每条消息。
"use strict";
const WebSocket = require("ws");
const binanceWS = new WebSocket("wss://stream.binance.com:9443/ws/stratbtc@trade");
binanceWS.on("open", function open() {
console.log("open action");
});
binanceWS.on("message", function incoming(data) {
console.log(data);
});
现在这个binanceWS 将在收到数据时打印数据。我想做的是如何传递给我的 WebSocket.Server 对象的send eventlistener。正如您在https://github.com/websockets/ws 中看到的一个示例,当有连接时,wss 本身会获取一个 websocket 对象。
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
谢谢!
注意:我说的结构是这样的。基本上,我会让 websocket 消费者获取交易数据。在同一主机(现在是本地主机)内将有一个 websocket 服务器。这个 websocket 服务器会向每个客户端 websockets 发送数据。
成功:
好的,我通过在 websocket 服务器连接中定义消费者 websocket (binanceWS) message 侦听器来做到这一点。我不确定这是否是一个好方法
"use strict";
const WebSocket = require("ws");
const binanceWS = new WebSocket("wss://stream.binance.com:9443/ws/stratbtc@trade");
binanceWS.on("open", function open() {
console.log("open action");
});
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
binanceWS.on("message", function incoming(data) {
ws.send(data);
});
});
【问题讨论】:
标签: javascript node.js websocket