2013-11-25 79 views
1

我正在使用nodejs v0.11.0-presocket.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

在服务器端和/或浏览器 一侧没有连接。只有一个连接。如果其中一方关闭它, 然后它关闭(并且您不能将数据推送到明显关闭的连接 )。 来源:https://stackoverflow.com/a/18147207/973155

但是,您可以自己从客户端关闭连接:

socket.disconnect(); 
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> 

和监听端口必须相同连接使用。

0

我已经在Mozilla Firefox 19.0尝试这个代码,它完美的作品 但是当谷歌浏览器31.0.1650.57运行它,我没有收到任何东西在客户端socket.on(“断”)

相关问题