我正在使用nodejs v0.11.0-pre
和socket.io version 0.9.11
,我想在客户端检测套接字断开连接。我正在使用此代码在断开连接时发出警报,但似乎我做错了任何人都可以帮忙,谢谢
客户端:
<script src="http://127.0.0.1:4000/socket.io/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script language="javascript" type="text/javascript">
var socket = io.connect('127.0.0.1',{port:4000});
console.log("connected");
socket.on('disconnect', function () {
alert('disconnected');
});
</script>
服务器:
var http = require('http');
var app = http.createServer().listen(4000)
,io = require('socket.io').listen(app);
io.sockets.on('connection', function (socket) {
console.log("client has established :" + socket.id);
socket.on('disconnect', function () {
console.log("client has disconnected :" + socket.id);
});
});
服务器上的每一件事都可以正常工作,但客户端上的断开连接没有警报。
答案 0 :(得分:3)
请执行以下操作:
<script src="/socket.io/socket.io.js"></script>
<script language="javascript" type="text/javascript">
var socket = io.connect('127.0.0.1:8080');
socket.on('connect', function() { console.log("connected"); });
socket.on('disconnect', function () { console.log("disconnected"); });
</script>
并且您的侦听器端口必须与connect使用该端口相同。
答案 1 :(得分:1)
服务器端和/或浏览器上没有连接 侧。只有一个连接。如果其中一方将其关闭, 然后它被关闭(你不能将数据推送到一个连接 明显关闭)。 来源: https://stackoverflow.com/a/18147207/973155
然而,您可以自己从客户端关闭连接:
socket.disconnect();