【问题标题】:phoenix channels and their relation to sockets凤凰通道及其与插座的关系
【发布时间】:2016-05-01 06:11:39
【问题描述】:

我需要一些关于长生不老药/凤凰频道的建议。我有一个与场地更改相关的应用程序,为了减少发送给每个客户的数据量,我只希望每个客户订阅它关心的场地。

考虑到这一点,我正在考虑为“VenueChanges/*”建立一个频道,并让每个客户使用它关心的每个场地 ID 多次订阅该频道,即“VenueChanges/1”、“ VenueChanges/2" 等

客户关心的场地会经常变化,这意味着会有很多加入和离开的频道。

我的问题是,让客户多次加入频道的开销是多少。我是否正确假设每个加入的通道仍然只有一个套接字打开而不是一个新套接字?

还有关于管理客户不断加入和离开频道的任何建议吗?一般还有其他建议吗?如果这是一个坏主意,还有什么更好的选择?

【问题讨论】:

  • 很好的问题,但不幸的是,这不是 StackOverflow 的最佳问题类型。一般建议问题被认为是题外话。你有没有亲自尝试过,看看会发生什么?
  • 我不同意,只有最后一部分是一般建议,还有一个关于性能的具体问题
  • 您的意思是“大量加入和离开频道主题/房间”吗?我从 VenueChanges:1、VenueChanges:2 等获得了这种印象。

标签: performance websocket elixir phoenix-framework


【解决方案1】:

关于套接字问题,您是正确的,因为每个客户端仍然只有一个套接字(多个通道在一个套接字上多路复用)。

虽然没有直接回答您一贯的加入/离开问题,但 Chris McCord 在Phoenix Channels vs Rails Action Cable 上的帖子有一些非常好的性能数据,最好的总结如下:

通过 Phoenix,我们已经证明渠道表现保持一致 随着通知需求的增加,这对于处理 流量高峰和避免超载

也就是说,您的服务器硬件和部署分布策略也将在回答这个问题方面发挥重要作用。

最后,基于您的意思是加入/离开频道 topics(或在某些地方称为“房间”),如 Chris 的 55,000 个连接测试所示:

请务必注意,Phoenix 在为每个房间测试 50 和 200 位用户进行广播时保持相同的响应能力。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多