如何在 NodeJS 中显示 Websocket 对浏览器的响应
Posted
技术标签:
【中文标题】如何在 NodeJS 中显示 Websocket 对浏览器的响应【英文标题】:How To Display Websocket Response To Browser In NodeJS 【发布时间】:2020-04-20 07:21:16 【问题描述】:我是 NodeJS 的新手。我的代码是
const webSocket= require('ws');
const express =
require('express');
const app=express();
Var url = "wss://stream.binance.com:9443/BTCUSDT@trade`"
const ws = new webSocket(url);
app.get('/',(req,res)=>
ws.on('message',data=>
res.send(data)
)
)
app.listen(3000)
当我使用 console.log 而不是 res.send() 时,它可以成功运行并控制数据。
如何将这些动态数据显示到浏览器。提前致谢。
【问题讨论】:
您需要一个客户,请向我们展示您的客户代码。 是否有任何客户端代码.. 我是节点新手 您的意思是向上述文件发送请求? 我认为最好了解 WebSockets 的工作原理。在您的代码中,主要问题是如果调用“/”端点,您将获得消息侦听器。您的 api 和 websocket 不应相互依赖。对于 websocket,这是一个服务器,要向浏览器发送消息,您需要一个 websocket 客户端。 【参考方案1】:Websocket 是事件驱动的
在服务器上发出事件的事件发射器的语法如下:
ws.emit('eventName',data);
接收消息的事件监听器的语法如下:
//For the client to receive the message, you should put something like this at the front end
ws.on('eventName',data=>
const content = data;
document.getElementById('chat').innerhtml += content
);
Websocket 是不同于 HTTP 的协议。它使用 HTTP 建立连接。然后连接将升级到 websocket。到那时,您不应该再像 res.send() 那样使用 HTTP 发送数据,而是使用 ws.emit('eventName', data) 来发送数据。
Websocket Protocol
【讨论】:
感谢您的回复.. 但是如何在客户端的该页面上加载“ws”? 是的。您只需在前端包含 WebSocket CDN。您也可以选择在本地下载。以上是关于如何在 NodeJS 中显示 Websocket 对浏览器的响应的主要内容,如果未能解决你的问题,请参考以下文章
如何在 nginx nodejs 服务器上配置“ws”websocket?
如何在NodeJS中代理websocket连接到其他websockets