レガシー API アプリケーションを Phoenix に段階的に移植することを検討しています。理想的には、アプリケーションのサブドメインを別の Phoenix アプリに分割し、それらを別のサーバー ノードでホストします。
Phoenix チャネルを使用して、アプリ間の通信を促進したいと考えています。Phoenix アプリを別のチャンネルやトピックに接続するにはどうすればよいですか? たとえば、次のような WebSocket で「jobs.foo.com」サブドメインを設定したいと思います。
socket "/ws", Jobs do
channel "jobs:work_orders", WorkOrdersChannel
end
別の Phoenix アプリ (例: レポート) から、その Jobs チャネル トピックに発行/サブスクライブしたいと考えています。レポートで Jobs ライブラリを作成し、config.exsPhoenix.Endpoint
でその URL を構成することをお勧めしますか? その名前付きの pubsub エンドポイントJobs.Endpoint
のようなものを利用できますか?Phoenix.PubSub.subscribe/4
私が考えていることが理にかなっているのかどうかはわかりません。もっと賢明なアプローチがあれば、私は提案を受け入れます。
- 編集 -
私が達成しようとしていることを明確にするために... WebSocketクライアントを介して1つのPhoenixアプリを別のアプリに接続したいと考えています。これにより、さまざまなドメイン ロジックを備えたアプリが、共通の関心を持つチャネルやトピックを介してイベントを介して通信できるようになります。