我需要一些关于长生不老药/凤凰频道的建议。我有一个与场地变更相关的应用程序,为了减少发送给每个客户的数据量,我只希望每个客户订阅它关心的场地。
考虑到这一点,我正在考虑为"VenueChanges/*"建立一个频道,并让每个客户使用它关心的每个场地 ID 多次订阅该频道,即"VenueChanges/1"、"VenueChanges/2"等。
客户关心的场地会经常变化,这意味着大量的加盟和离开渠道。
我的问题是,让客户多次加入频道的开销是多少。我假设仍然只有一个套接字打开,而不是每个加入的通道都有一个新套接字是否正确?
还有关于管理客户不断加入和离开频道的任何建议?还有其他建议吗?如果这是一个坏主意,还有什么更好的选择?
关于套接字问题,您是正确的,因为每个客户端仍然只有一个套接字(多个通道在该套接字上多路复用)。
虽然没有直接回答您一贯的加入/离开问题,但 Chris McCord 在凤凰频道与 Rails Action Cable 上的帖子有一些非常好的性能数据,最好总结如下:
通过 Phoenix,我们证明了渠道性能保持一致 随着通知需求的增加,这对于处理至关重要 流量高峰和避免过载
也就是说,您的服务器硬件和部署分发策略也将在回答该问题方面发挥重要作用。
最后,基于你的意思是加入/离开频道主题(或在某些地方称为"房间"),如 Chris 测试中看到的 55,000 个连接:
请务必注意,Phoenix 在广播每个房间 50 和 200 个用户测试时保持相同的响应能力。