加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows Azure上使用Socket.io横向扩展Node.js

发布时间:2020-12-14 05:42:48 所属栏目:Windows 来源:网络整理
导读:我按照 “Build a Node.js Chat Application…”帖子,逐步显示如何使用Socket.io部署Node.js应用程序以提供实时聊天webapp. 唯一缺少的是展示如何横向扩展此应用程序,因为我发现在Windows Azure上扩展此类应用程序并不那么简单,因为Azure LB仅支持循环策略.
我按照 “Build a Node.js Chat Application…”帖子,逐步显示如何使用Socket.io部署Node.js应用程序以提供实时聊天webapp.

唯一缺少的是展示如何横向扩展此应用程序,因为我发现在Windows Azure上扩展此类应用程序并不那么简单,因为Azure LB仅支持循环策略.

我确实找到了socket.io-servicebus,它提供了一些满足酒吧/子商店需求的解决方案.
但这还不够,因为Socket.io在握手阶段#952中有一个已知错误,这意味着如果没有粘性会话,握手阶段就无法工作.

有任何想法吗?

解决方法

免责声明:我没试过这个.

回到云服务支持节点的第一个版本.我经常以worker角色而不是web角色运行node以避免iisnode.这是必要的,因为Windows Server 2008 R2根本不支持websockets.所以为了将socket.io与节点一起使用,这就是方法.现在Windows Server 2012已经可用,我们不再这样做了.

鉴于此,有osfamily 2(SessionAffinity)和osfamily 3(SessionAffinity4)的工具可以在工作者角色中启用粘性会话(显然不是Web角色).这可以满足您的需求,代价是在部署和本地测试(如果您使用模拟器)方面更复杂一些.

我的客户端运行的是SignalR和运行在Windows Azure中的Service Bus Backplane.所以我可以验证那组选项.但我还没有运行SessionAffinity插件.

值得注意的是,Windows Azure网站默认使用ARR引入会话关联.只有当您不受某些原因限制云服务时才会这样. (link)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读