栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

socket.io房间或命名空间?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

socket.io房间或命名空间?

这是名称空间和房间 的共同点 (socket.io v0.9.8-请注意,v1.0涉及完整的重写,因此情况可能有所更改):

  • 命名空间(io.of(’/ nsp’))和房间(socket.join(’room’)) 都是在服务器端创建的
  • 多个名称空间和多个房间 共享相同的(WebSocket)连接
  • 服务器将 仅通过有线方式消息传输到 连接到/加入了nsp / room的 那些客户端 ,即不仅仅是客户端筛选

差异

  • 客户端 使用 以下方式连接
    io.connect(urlAndNsp)
    名称空间(仅当客户端已经存在于服务器上时,客户端才会添加到该名称空间中)
  • 房间只能在服务器端加入 (尽管 在服务器端 创建API以允许客户端加入很简单)
  • 命名空间可以受 授权保护
  • 房间不能使用授权 ,但是可以将自定义授权添加到服务器上上述易于创建的API中,以防万一使用房间
  • 房间是名称空间的一部分 (默认为“全局”名称空间)
  • 名称空间始终植根于全局范围

为了不使概念与名称(房间或名称空间)混淆,我将使用 隔离专区 来引用该概念,并使用其他两个名称来表示该概念的 实现 。所以如果你

  • 需要 每个隔间的授权 ,名称空间可能是最简单的方法
  • 如果要 分层放置隔层 (最多2层),请使用名称空间/房间组合
  • 如果您的客户端应用程序由不同部分组成(它们本身并不关心隔离专区,但需要彼此分开),请使用名称空间。

后者的示例是一个大型客户端应用程序,其中可能分别开发(例如,第三方)的不同模块(每个模块分别使用socket.io)正在同一应用程序中使用,并希望共享一个网络连接。

在我尚未真正进行基准测试的情况下,在我看来,如果您只需要在项目中使用简单的隔离专区来分隔和分组消息,则任何一种都可以。

不确定是否能回答您的问题,但是导致该问题的研究至少帮助我更清楚了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409705.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号