【发布时间】:2014-11-21 19:00:49
【问题描述】:
我正在使用 websocket(来自dart:html 的套接字),我想知道是否可以在用户关闭浏览器或退出页面时发送消息。
我尝试了这样的onClose 事件:
ws = new WebSocket('ws://$hostname:$port/ws');
ws.onOpen.listen(onSocketOpen);
ws.onClose.listen((e) {
ws.send("I disconnected");
});
但在这些特殊情况下它不会发送任何内容。或者,在我的服务器上,我也尝试了这个,但使用 onDone 事件:
WebSocketTransformer.upgrade(req)
..then((socket) => socket.listen((msg) => doSomething(), onDone:() => print("connection closed)));
这行得通,但我想知道哪个客户端断开了连接(我想从实际断开连接的客户端发送一些东西的原因)。
有这样做的理由吗?当有人断开连接时,我真的不想查询所有其他客户端以了解他们是否仍然连接......
【问题讨论】: