在JavaScript中,我正在像这样实例化WebSocket:
var webSocket = new WebSocket('wss://example.com:8081');
webSocket.onclose = function () {
// Custom function
}
但是,如果用户关闭浏览器窗口或退出浏览器,我的自定义onclose
函数中的代码是否运行?我尝试在其中放置Ajax调用和webSocket.send()函数,但均未成功运行。
如果在关闭窗口或用户退出浏览器时onclose
没有运行,一旦用户断开连接,在服务器上运行自定义代码的最佳方法是什么?现在,我最好的猜测是必须从服务器端执行代码–换句话说,正在运行的WebSocket服务器(在我的情况下是用php编写)需要内部onClose
方法中的自定义代码。
答案 0 :(得分:1)
onclose在套接字连接关闭时触发,而在窗口或浏览器关闭时则不一定。理论上,当另一个带有套接字的窗口关闭时,它应该触发,但是如果它自己的窗口则不会触发。
Id建议为beforeunload添加一个事件侦听器,该链接位于下面,当页面及其资源即将被卸载时会触发
https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload
示例
window.addEventListener("beforeunload", function (event) {
});
另外,onunload可能是一个有用的监听事件