【问题标题】:How to detect socket disconnection on client side?如何检测客户端的套接字断开连接?
【发布时间】:2013-12-10 18:00:48
【问题描述】:

我正在使用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);
});       
});

服务器上一切正常,但客户端断开连接时没有警报。

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    如下操作:

    <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>
    

    并且您的侦听器端口必须与连接使用的端口相同。

    【讨论】:

      【解决方案2】:

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

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

      socket.disconnect();
      

      【讨论】:

        猜你喜欢
        • 2014-04-14
        • 1970-01-01
        • 1970-01-01
        • 2010-11-15
        • 2011-04-29
        • 2010-10-17
        相关资源
        最近更新 更多