socket.volatile.emit 来自客户端
socket.volatile.emit from client side
我正在开发一个简单的应用程序,在浏览器中有一个 node.js 服务器和一个 HTML5 客户端。目前,我正在使用 socket.io
进行通信,因为在我看来它应该在大多数情况下都能正常工作:代理、防火墙等。另一方面,我现在很难确定到底发生了什么,因为很多东西都是自动化的,而且我没有找到全面的文档。另一个重要的一点是我是 Javascript/Node.js 世界的新手。
在这个特定问题中,我试图按照类似 SNTP 的方案实现客户端和服务器之间的紧密同步。因此,我想丢弃任何延迟的数据包。 volatile
标志应该允许我这样做,我用它来从服务器发出消息,但它在客户端似乎无效。是设计使然吗?因为我在客户端使用的是单机版(这里没有require
或者browserify
)?
index.html
<html>
<body onload="init()">
<script src="/socket.io/socket.io.js"></script>
<script src="calibration.js"></script>
</body>
</html>
calibration.js
var socket = io.connect();
function init() {
socket.emit('test', 'ok');
socket.volatile.emit('test-volatile', 'bad');
}
控制台登录页面加载
socket.volatile is undefined
volatile
对客户端来说毫无意义吗?如果没有,有没有办法使用它?任何指向文档的指针将不胜感激。目前,我正在考虑 engine.io
或 ws
node.js
套餐...
我认为还不支持从客户端向服务器发送不稳定的消息。
我正在使用 socket.io-client 从客户端向服务器发送 volatile emit。但是,当我在连接后立即发送消息时,我不得不使用 setTimeout()
const socket = io( { autoConnect: false });
function init(){
socket.open();
setTimeout(() => {
socket.volatile.emit('hello', 'world');
}, 1000);
}
我正在开发一个简单的应用程序,在浏览器中有一个 node.js 服务器和一个 HTML5 客户端。目前,我正在使用 socket.io
进行通信,因为在我看来它应该在大多数情况下都能正常工作:代理、防火墙等。另一方面,我现在很难确定到底发生了什么,因为很多东西都是自动化的,而且我没有找到全面的文档。另一个重要的一点是我是 Javascript/Node.js 世界的新手。
在这个特定问题中,我试图按照类似 SNTP 的方案实现客户端和服务器之间的紧密同步。因此,我想丢弃任何延迟的数据包。 volatile
标志应该允许我这样做,我用它来从服务器发出消息,但它在客户端似乎无效。是设计使然吗?因为我在客户端使用的是单机版(这里没有require
或者browserify
)?
index.html
<html>
<body onload="init()">
<script src="/socket.io/socket.io.js"></script>
<script src="calibration.js"></script>
</body>
</html>
calibration.js
var socket = io.connect();
function init() {
socket.emit('test', 'ok');
socket.volatile.emit('test-volatile', 'bad');
}
控制台登录页面加载
socket.volatile is undefined
volatile
对客户端来说毫无意义吗?如果没有,有没有办法使用它?任何指向文档的指针将不胜感激。目前,我正在考虑 engine.io
或 ws
node.js
套餐...
我认为还不支持从客户端向服务器发送不稳定的消息。
我正在使用 socket.io-client 从客户端向服务器发送 volatile emit。但是,当我在连接后立即发送消息时,我不得不使用 setTimeout()
const socket = io( { autoConnect: false });
function init(){
socket.open();
setTimeout(() => {
socket.volatile.emit('hello', 'world');
}, 1000);
}