先看我的WebSocket服务器端代码:

socket.on('disconnect', function(){console.log("disconnect event detected, client is probably not there");eventEmitter.emit('close',socket);});

一旦客户端比如浏览器主动断开连接,服务器实现扑捉disconnect的事件,然后抛给服务器端应用实现。

服务器端应用实现响应这个事件,调用服务器的析构例程,把该客户端对应的套接字从套接字池里移除:

移除实现:

 function disconnectFromGivenClient(disconnectedSocket){console.log("before destruction, client size: " + clients.length);clients = clients.filter(function(item) {return item !== disconnectedSocket});console.log("after destruction, client size: " + clients.length);}

运行时测试效果:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

WebSocket客户端连接断开后,服务器端的析构处理相关推荐

  1. WebSocket客户端连接成功后,返回的socket里有用的字段

    connectede和disconnected:表示两个状态相应的值 handshake - host - WebSocket服务器的IP地址和端口 origin - 客户端web应用的url use ...

  2. WebSocket客户端连接不上和掉线的问题以及解决方案

    WebSocket客户端连接不上和掉线的问题以及解决方案 参考文章: (1)WebSocket客户端连接不上和掉线的问题以及解决方案 (2)http://www.cnblogs.com/goeasyc ...

  3. 使用 WebSocket 客户端连接 MQTT 服务器/vue 项目使用mqtt消息队列实现推送

    简介 近年来随着 Web 前端的快速发展,浏览器新特性层出不穷,越来越多的应用可以在浏览器端或通过浏览器渲染引擎实现,Web 应用的即时通信方式 WebSocket 得到了广泛的应用. WebSock ...

  4. 关于php socket客户端连接java socket服务器端,出现连接中断的问题。

    这几天有一个需求,需要用php通过socket通信的方式调用java的服务.但开发过程中总是出现php socket客户端出现连接被中断的情况,同时java socket服务器端实际已经正常接收到ph ...

  5. Android简单实现Socket通信,客户端连接服务器后,服务器向客户端发送文字数据

    案例实现的是简单的Socket通信,当客户端(Android客户端)连接到指定服务器以后,服务器向客户端发送一句话文字信息(你可以拓展其它的了) 先看一下服务端程序的实现吧 Server.java i ...

  6. netty客户端连接后无限发送数据,连接不上时无限重试,断线重连

    在之前的netty文章里,刚开始学,利用netty实现websocket写了一个聊天程序. 纯netty实现http,websocket协议,头像上传,搭建实时聊天室,群聊,私聊,文字,图片消息 本文 ...

  7. Android客户端连接SSM(Spring+SpringMVC+Mybatis)框架Java服务器端

    Android客户端开发越来越流行,但是,Android客户端对应的服务器端采用什么框架呢?对于功能较为简单的应用,我建议,直接采用java web开发最简单的MVC框架即可(很多Android应用的 ...

  8. MQTT客户端连接服务器协议,mqtt客户端和服务器长连接

    mqtt客户端和服务器长连接 内容精选 换一换 介绍设置客户端和服务器的安全认证方式的相关参数.参数说明:表明与服务器建立链接后,不进行任何操作的最长时间.参数类型:USERSET取值范围:整型,0- ...

  9. 配置ORACLE 客户端连接到数据库

    --================================= -- 配置ORACLE 客户端连接到数据库 --================================= Oracle ...

最新文章

  1. ORACLE11g 前期安装环境配置
  2. 无需多个模型也能实现知识整合?港中文MMLab提出「烘焙」算法,全面提升ImageNet性能...
  3. matlab simulink互感,Simulink互感模块用set_param函数不能正确赋值
  4. [Dynamic Language] Python3.7 源码安装 ModuleNotFoundError: No module named '_ctypes' 解决记录...
  5. jOOQ,H2和Maven入门
  6. FreeRTOS应用开发笔记之一:FreeRTOS在STM32的移植
  7. ajax中的简单get请求,jquery 之ajax,get,post异步请求简单代码模版(示例代码)
  8. 孙鑫-MFC笔记十一--动态链接库
  9. 保存界面cd的内容图片到本地
  10. 如何用计算机寒假计划表,如何制定寒假学习计划表
  11. linux:nohup 不生成 nohup.out的方法
  12. 蓝桥杯之单片机学习(十八)——555定时器与频率测量
  13. 机器学习全生命周期,一步一步,中长篇(三)总共三篇
  14. webdriver中的等待——主要讲解WebDriverWait()
  15. 景深决定照相机什么特性_行政执法考试题库2017 2017摄影专业考试题库
  16. PHPCMS网站关站了打不开-站长真的凉了吗?
  17. 服务器与普通电脑之间的区别是什么?
  18. 模糊字符串匹配:双音素算法
  19. 大国数据跨境规则博弈,谁能抢占“数据经济制高地”?
  20. 最新可乐个人发卡网源码V2.0 仿DS网美化加强版

热门文章

  1. HP unix 常用管理命令
  2. redis源码阅读(1)
  3. 使用powermock 测试static 方法,jacoco统计覆盖率问题
  4. JVM调优之jstack找出最耗cpu的线程并定位代码
  5. SVM 核函数相关知识
  6. PyTorch基础(part7)--CNN
  7. 图卷积神经网络(part1)--卷积概述
  8. 泛化,过拟合,欠拟合素材(part1)--python机器学习基础教程
  9. 精选6种制作酷炫动图的方法,收藏!
  10. JavaScript 异步执行的学习笔记 - 什么是事件循环 Event loop?