我刚刚从他们的官方网站关注了 Phoenix Channel 和 Presence Documentation。正如它所描述的那样,事情工作得很好。
作为 Channel 文档,它有加入回调,所以当客户加入特定主题时我可以处理一些事情。但是为什么没有我认为应该存在的离开回调呢?
我搜索了一些,发现我可以使用 Presence 来跟踪客户状态。它也有效,但我实际上不需要通知客户。如果我试图在 Channel 的 handle_out 回调中捕获 Presence_diff 事件,它会被多次调用为客户端数量。
正如 Presence 文档所说...
如果您只想使用 Phoenix.Presence 提供的功能的子集,例如跟踪进程但不广播更新,我们建议您查看 phoenix_pubsub 项目中的 Phoenix.Tracker 功能
但是,Phoenix.Tracker 最初需要 :pubsub_server 属性。
这是我的问题。
- 为什么 Phoenix.Channel 没有实现 leave-like 回调。
- 如何处理特定主题的客户状态(加入/离开)。
提前致谢。