我希望逐步将遗留API应用程序移植到菲尼克斯。理想情况下,我会将应用程序的子域划分为单独的凤凰应用程序,并将它们托管在不同的服务器节点上。
我希望利用凤凰频道来促进应用程序的交流。我如何连接一个凤凰应用程序到另一个的频道和主题?例如,我希望使用jobs.foo.com设置一个“WebSockets”子域,例如:
socket "/ws", Jobs do
channel "jobs:work_orders", WorkOrdersChannel
end从另一个凤凰应用程序(如:报告),我想发布/订阅乔布斯频道的话题。是否应该在报告中创建一个Phoenix.Endpoint作业库,并在config.exs中配置该Jobs.Endpoint url?然后,我可以使用像Phoenix.PubSub.subscribe/4这样的名称为pubsub终结点的东西吗?
我不确定我的想法是否有意义。如果有更明智的办法,我愿意接受建议。
-编辑--
只是为了澄清我想要完成的..。我想让一个凤凰应用程序连接到另一个通过WebSocket客户端。这将允许我有不同领域逻辑的应用程序,通过渠道和共同感兴趣的主题通过事件进行交流。
发布于 2015-07-07 21:36:28
好的,我想出了在我的各种凤凰应用程序中创建WebSocket客户端的方法,并允许应用程序通过远程通道和主题进行应用程序通信。我从:
和
基本上,我将websocket_client.exs代码复制到应用程序的../lib目录中,然后加载并别名它。之后,我可以将一个应用程序连接到另一个应用程序的远程套接字上,就像在channel_test.exs中所做的那样。我在两台不同的机器上开发了两个独立的凤凰应用程序,并能够发送和接收跨频道的消息。
不要忘记将{:websocket_client, github: "jeremyong/websocket_client"}添加到mix.exs依赖项中。
发布于 2015-07-06 23:26:17
我认为您可能想了解一下Phoenix.PubSub --只要您设法将节点连接到集群中(或者即使没有,也可以使用DB或Redis后端),您就应该能够让它们通过它相互交谈。
https://stackoverflow.com/questions/31257117
复制相似问题