【问题标题】:How could I know amount of connections to channel in phoenix?我怎么知道凤凰频道的连接数量?
【发布时间】:2017-01-10 04:35:07
【问题描述】:

我有一个非常简单的聊天应用程序,我想在用户退出页面时实现一些特定的操作(即terminate/2 连接)。但是如果没有其他人与此主题相关,我想执行此操作。

我该怎么做?

【问题讨论】:

  • 我自己并没有真正研究过,但我知道您可以使用Phoenix Presence跟踪有多少人连接到给定频道
  • 贾斯汀,这个解决方案看起来不错。谢谢!

标签: websocket elixir phoenix-framework


【解决方案1】:

这听起来像是一个微不足道的问题,但事实并非如此。您需要处理连接问题等。幸运的是,这是一个足够常见的问题,因此有一个标准的解决方案,它与 Phoenix 捆绑在一起 - Phoenix.Presence。它将允许您可靠地跟踪给定主题的在线用户。

按照此处的步骤设置 Presence:https://hexdocs.pm/phoenix/Phoenix.Presence.html

然后在您的terminate/2 回调中,您可以检查是否所有用户都离开了主题

if Presence.list(socket) |> Enum.empty? do
  # do something
end

【讨论】:

  • 如果我的do something 也是异步的,这尤其困难 :) 谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
  • 1970-01-01
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多