如何从另一个 Phoenix 应用程序连接到远程/外部 Phoenix 应用程序通道?
How do I connect to a remote / external Phoenix app channel from another Phoenix app?
我希望逐步将遗留 API 应用程序移植到 Phoenix。理想情况下,我会将我的应用程序的子域划分为单独的 Phoenix 应用程序并将它们托管在不同的服务器节点上。
我希望使用凤凰频道来促进应用程序之间的通信。如何将一个 Phoenix 应用程序连接到另一个的频道和主题?例如,我想用 WebSockets 设置一个 'jobs.foo.com' 子域,例如:
socket "/ws", Jobs do
channel "jobs:work_orders", WorkOrdersChannel
end
从另一个 Phoenix 应用程序(例如:报告)我想 pub/sub 到那个乔布斯频道主题。在报告中创建一个 Phoenix.Endpoint
工作库,并在 config.exs 中配置 Jobs.Endpoint
url 是否可取?然后我可以对那个命名的 pubsub 端点使用类似 Phoenix.PubSub.subscribe/4
的东西吗?
我不确定我的想法是否有道理。如果有更可取的方法,我愿意接受建议。
-- 编辑--
只是为了阐明我要完成的任务...我想让一个 Phoenix 应用程序通过 WebSocket 客户端连接到另一个应用程序。这将允许我拥有具有不同域逻辑的应用程序,通过事件在频道和共同感兴趣的主题上进行通信。
我想你可能想研究一下 Phoenix.PubSub - 只要你设法将你的节点连接到一个集群中(或者即使没有,使用数据库或 Redis 后端)你应该能够他们就此互相交谈。
好的,我找到了一种在我的各种 Phoenix 应用程序中创建 WebSocket 客户端并允许应用程序通过远程频道和主题进行应用程序通信的方法。我的灵感来自:
和
我基本上是将 websocket_client.exs
代码复制到我的应用程序的 ../lib
目录中,然后加载并为其添加别名。之后我可以将一个应用程序连接到另一个应用程序的远程套接字,就像在 channel_test.exs
中所做的一样。我在两台不同的机器上启动了两个独立的 Phoenix 应用程序,并且能够跨渠道发送和接收消息。
不要忘记将 {:websocket_client, github: "jeremyong/websocket_client"}
添加到您的 mix.exs
依赖项中。
我希望逐步将遗留 API 应用程序移植到 Phoenix。理想情况下,我会将我的应用程序的子域划分为单独的 Phoenix 应用程序并将它们托管在不同的服务器节点上。
我希望使用凤凰频道来促进应用程序之间的通信。如何将一个 Phoenix 应用程序连接到另一个的频道和主题?例如,我想用 WebSockets 设置一个 'jobs.foo.com' 子域,例如:
socket "/ws", Jobs do
channel "jobs:work_orders", WorkOrdersChannel
end
从另一个 Phoenix 应用程序(例如:报告)我想 pub/sub 到那个乔布斯频道主题。在报告中创建一个 Phoenix.Endpoint
工作库,并在 config.exs 中配置 Jobs.Endpoint
url 是否可取?然后我可以对那个命名的 pubsub 端点使用类似 Phoenix.PubSub.subscribe/4
的东西吗?
我不确定我的想法是否有道理。如果有更可取的方法,我愿意接受建议。
-- 编辑--
只是为了阐明我要完成的任务...我想让一个 Phoenix 应用程序通过 WebSocket 客户端连接到另一个应用程序。这将允许我拥有具有不同域逻辑的应用程序,通过事件在频道和共同感兴趣的主题上进行通信。
我想你可能想研究一下 Phoenix.PubSub - 只要你设法将你的节点连接到一个集群中(或者即使没有,使用数据库或 Redis 后端)你应该能够他们就此互相交谈。
好的,我找到了一种在我的各种 Phoenix 应用程序中创建 WebSocket 客户端并允许应用程序通过远程频道和主题进行应用程序通信的方法。我的灵感来自:
和
我基本上是将 websocket_client.exs
代码复制到我的应用程序的 ../lib
目录中,然后加载并为其添加别名。之后我可以将一个应用程序连接到另一个应用程序的远程套接字,就像在 channel_test.exs
中所做的一样。我在两台不同的机器上启动了两个独立的 Phoenix 应用程序,并且能够跨渠道发送和接收消息。
不要忘记将 {:websocket_client, github: "jeremyong/websocket_client"}
添加到您的 mix.exs
依赖项中。