10 ソケット - ohr486/elixir_handson_demo2 GitHub Wiki
Phoenixでは、WebSocket関連のコードは、lib/demo_web/channels/user_socket.ex
に記述します。
チャネルとの接続に関しては、user_socket.ex内で、
channel <トピックのパターン>, <チャネルを処理するモジュール>
と記述する事で、特定のトピックに接続した場合の処理をどのモジュールで定義するのか指定できます。
今回作成するチャットでは、chat:lobby
というトピックと通信するチャネルを使って作成するものとします。
また、その時のチャネルの処理はDemoWeb.ChatChannel
というモジュールに記述するものとします。
これらの設定を指定すると、channelの設定は、
channel "chat:lobby", DemoWeb.ChatChannel
という宣言となります。これをuser_socket.ex
に追加してください。
最終的なuser_socket.ex
はこの様になります。
それでは、チャネルの処理を実装していきましょう。