这是一个死的简单的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有什么不同?