• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

竹千代

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Socket.io实现原理分析

一、如何实现namespace划分?

    同一域名下面,不同namespace的socket对象:有一个共同点,就是都在同一个engine对象(websocket封装对象)的事件(open、data)响应函数;有一个不同点,各自socket对象的nsp属性值不同。 然后,每个websocket的数据包(packet),也有nsp属性值。 

    所以,在响应函数里面,第一句就是判断nsp值,是否与该socket值相同。 相同,则是该socket处理范围; 不相同,不做任何处理。

二、如何共用websocket连接?

    这个简单。其实就是Socket类,不直接对外暴露给用户,通过全局io函数。 对同一域,该io函数内部,维系一个Manage对象,它与websocket连接一一对应;Manager对象,维护n个Socket对象。

 

协议格式参考: https://www.jianshu.com/p/a3e06ec1a3a0

 

   

 

posted on 2019-05-26 20:38  竹千代  阅读(487)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3