2016-08-13 12 views
1

私はチャットルームを持っています。ユーザーが接続されたソケットを持っている場合は、それをブロードキャストします。しかし、ユーザーが接続していないときに、ユーザーが見逃した情報(メッセージなど)をログに記録したいと思います。内部プロセスからチャンネルに登録するにはどうすればよいですか? (永続的な接続を維持しようとしている)

ユーザーがオンラインに戻るまでデータを受け入れて保存するGenServerを最初に持っていたと思います。

内部プロセスをチャンネルに登録するにはどうすればよいですか?

このApp.RoomChannel.join("rooms:1", _, self())(この文句を言わない仕事、最後のparamsはソケットにする必要があるとして)

答えて

1

ような何かにあなたが(デバイスまたはユーザーがオンラインであることを、時間などのユーザー情報に関するいくつかのメタデータを追跡する場合、いくつかのメッセージ通知...)、Phoenix.Presenceを使用してその情報を追跡できます。あなたは、チャネルにサブスクライブしたい場合は

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

topic.Youを使用することができます。

YourApp.Endpoint.subscribe("channel_topic") 

フォロー命令Subscribing to external topics

+0

Phoenix.Channelから '' 'App.Endpoint.subscribe'''ました私が探していたものありがとう! –

関連する問題