为什么事件侦听器在Socket.IO断开连接并重新连接后没有响应?

时间:2014-07-12 07:24:20

标签: socket.io socket.io-1.0

这是一个死的简单的Socket.IO v1.0应用程序,基于官方文档中的一个示例。连接后,服务器发出" news"事件,然后没有其他事情发生。

// app.js (excluding http handler)

io.on("connection", function (socket) {
    socket.emit("news", { hello: "world" });
});

在客户端,收到" news"事件被警告,没有其他事情发生。

// client.js

var socket = io();
socket.on("news", function (data) {
    alert("Received news event");
});

当我断开连接并重新连接到我的套接字时,服务器和客户端的socket.io调试日志都会显示" news"发送和接收的事件。但是,警报框仅出现在第一个连接上,而不是在断开连接后出现在第二个连接上。

socket.disconnect();
socket.connect();

// alert box expected here, but does not appear

但是,如果我按照this answer中的建议(仅在16小时前发布)并使用socket.io API,则会出现警告框。

socket.io.disconnect();
socket.io.reconnect();

// alert box appears here

这是我的问题。似乎在v1.0中出现的io属性是什么? io上的断开/重新连接API与套接字实例上直接可用的断开/连接API有什么不同?

0 个答案:

没有答案