如何在客户端关闭套接字连接?
我在用:
即:呼叫localhost/test
- 服务器端
var test = io
.of('/test')
.on('connection', function (socket) {
console.log('open socket: ' + socket);
socket.on('disconnect', function () {
console.log('disconnected event');
//socket.manager.onClientDisconnect(socket.id); --> endless loop with this disconnect event on server side
//socket.disconnect(); --> same here
});
});
Run Code Online (Sandbox Code Playgroud)
- 客户端
var socket = io.connect('http://localhost:3000/test');
socket.on('disconnect', function () {
console.log('disconnect client event....');
});
socket.emit('getInitData', function (data) {
.. do something with data
});
Run Code Online (Sandbox Code Playgroud)
如果我加载测试页面,我需要来自服务器的一些值(getInitData).
在第一页访问我获取数据一次,在重新加载或第二次访问我得到它两次,依此类推.
服务器端的连接在页面重新加载时自动关闭,如果您离开页面.
但在客户端,连接仍然是开放的.
如何在客户端关闭连接或检查是否已打开连接?
更新
我现在尝试以下内容:(客户端)
window.onbeforeunload …Run Code Online (Sandbox Code Playgroud) 我正在使用node.js和socket.io构建一个小型原型.一切都运行良好,我面临的唯一问题是我的node.js连接将断开连接,我被迫刷新页面,以便连接并再次运行.
一旦断开事件被触发,有没有办法重新建立连接?
据我所知,这是一个常见问题.所以,我正在寻找解决这个问题的最佳实践方法:)
非常感谢,Dan