【发布时间】:2018-09-28 17:12:26
【问题描述】:
我正在使用 websocket 将数据从进程(在后台运行)推送到我的电子应用程序(渲染器,它是一个电子 vue 应用程序)。大多数情况下,这很有效,数据会立即接收和显示。
然而,在某些情况下,我注意到 websocket 客户端似乎缓冲了传入的消息,并且仅在延迟后才触发接收事件,从而导致消息作为批处理接收。
为了验证服务器没有缓冲任何内容,我运行了第二个连接并简单地记录了数据(chrome-addon),当我的电子应用程序延迟消息时,所有数据都被立即接收和处理。
我正在使用ReconnectingWebsocket,但也尝试了一个普通的 websocket 应用程序:
let webSocket = new WebSocket('ws://0.0.0.0:7700')
webSocket.onopen = function(openEvent) {
console.log('WebSocket OPEN: ' + JSON.stringify(openEvent, null, 4))
}
webSocket.onclose = function(closeEvent) {
console.log('WebSocket CLOSE: ' + JSON.stringify(closeEvent, null, 4))
}
webSocket.onerror = function(errorEvent) {
console.log('WebSocket ERROR: ' + JSON.stringify(errorEvent, null, 4))
}
webSocket.onmessage = function(messageEvent) {
var wsMsg = messageEvent.data
console.log('WebSocket MESSAGE: ' + wsMsg)
}
WebSocket MESSAGE: 仅显示有一些延迟。是否有任何配置选项,例如在客户端缓冲或必须更频繁地调用渲染进程..?
【问题讨论】: