在新的socket.io v0.7中,有一个新功能“易失性消息”。
在“如何使用”中,他们写道:(在http://socket.io/#how-to-use)
发送易变信息。
有时可以删除某些邮件。假设您有一个应用程序显示关键字
bieber
的实时>推文。如果某个客户端尚未准备好接收消息(由于网络速度缓慢或其他>问题,或者因为他通过长轮询连接并处于请求 - >响应周期的中间),如果他没有收到所有与bieber你的申请相关的推文>不会受到影响。
在这种情况下,您可能希望将这些消息作为易失性消息发送。
我认为volatile是不一致的,所以为什么他们告诉我们应该使用volatile消息来表示我们不能错过的消息类型?那些默认消息呢?我该怎么做以确保该消息将传达给客户?
此外,我还想问一下xhr-multipart传输。我没有在v0.7中的传输列表中看到它。被删除了吗?
答案 0 :(得分:12)
就像它说通常socket.io跟踪它收到的消息,如果我用户错过了一条消息,它将再次发送。如果您不希望这种开销(额外工作),您可以使用易失性消息,用户可能会错过消息。如果您还希望收到消息,则可以使用确认(回调)=>
服务器强>
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.on('ferret', function (name, fn) {
fn('woot');
});
});
<强>客户端:强>
<script>
var socket = io.connect(); // TIP: .connect with no args does auto-discovery
socket.on('connection', function () {
socket.emit('ferret', 'tobi', function (data) {
console.log(data); // data will be 'woot'
});
});
</script>
我也找不到xhr-multipart,但我想如果你真的想知道你可以问Guille吗?