2

这是一个非常简单的 Socket.IO v1.0 应用程序,基于官方文档中的一个示例。连接后,服务器会发出一个“新闻”事件,然后什么都不会发生。

// app.js (excluding http handler)

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

在客户端,收到“新闻”事件会发出警报,不会发生其他任何事情。

// client.js

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

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

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

// alert box expected here, but does not appear

但是,如果我遵循此答案中的建议(仅在 16 小时前发布)并改用socket.ioAPI,则会出现警报框。

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

// alert box appears here

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

4

0 回答 0