【问题标题】:How can I subscribe to a Channel from an internal proccess? (trying to keep a persistent connection)如何从内部进程订阅频道? (试图保持持久连接)
【发布时间】:2023-03-07 02:26:01
【问题描述】:

我有一个聊天室,当用户有一个连接的套接字时,我们会向它广播。但是当用户未连接时,我想记录有关用户错过的信息(消息等)

我最初的想法是要有一个 GenServer 来接受和存储数据,直到用户重新上线。

如何让内部流程订阅频道?

类似App.RoomChannel.join("rooms:1", _, self()) 的东西(这行不通,因为最后一个参数必须是 Socket)

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    如果您想跟踪有关用户信息的一些元数据,例如(设备或用户在线时间、一些消息通知...),您可以使用 Phoenix.Presence 跟踪该信息。

    https://hexdocs.pm/phoenix/Phoenix.Presence.html

    如果您想订阅频道主题。您可以使用:

    YourApp.Endpoint.subscribe("channel_topic")
    

    听从Phoenix.ChannelSubscribing to external topics的指示

    【讨论】:

    • App.Endpoint.subscribe 是我想要的。谢谢!
    猜你喜欢
    • 2015-08-24
    • 2016-01-14
    • 2013-12-17
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    相关资源
    最近更新 更多