首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从另一个菲尼克斯应用程序连接到远程/外部凤凰应用程序通道?

如何从另一个菲尼克斯应用程序连接到远程/外部凤凰应用程序通道?
EN

Stack Overflow用户
提问于 2015-07-06 22:59:37
回答 2查看 4.9K关注 0票数 10

我希望逐步将遗留API应用程序移植到菲尼克斯。理想情况下,我会将应用程序的子域划分为单独的凤凰应用程序,并将它们托管在不同的服务器节点上。

我希望利用凤凰频道来促进应用程序的交流。我如何连接一个凤凰应用程序到另一个的频道和主题?例如,我希望使用jobs.foo.com设置一个“WebSockets”子域,例如:

代码语言:javascript
复制
socket "/ws", Jobs do
   channel "jobs:work_orders", WorkOrdersChannel
end

从另一个凤凰应用程序(如:报告),我想发布/订阅乔布斯频道的话题。是否应该在报告中创建一个Phoenix.Endpoint作业库,并在config.exs中配置该Jobs.Endpoint url?然后,我可以使用像Phoenix.PubSub.subscribe/4这样的名称为pubsub终结点的东西吗?

我不确定我的想法是否有意义。如果有更明智的办法,我愿意接受建议。

-编辑--

只是为了澄清我想要完成的..。我想让一个凤凰应用程序连接到另一个通过WebSocket客户端。这将允许我有不同领域逻辑的应用程序,通过渠道和共同感兴趣的主题通过事件进行交流。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-07 21:36:28

好的,我想出了在我的各种凤凰应用程序中创建WebSocket客户端的方法,并允许应用程序通过远程通道和主题进行应用程序通信。我从:

test.exs

client.exs

基本上,我将websocket_client.exs代码复制到应用程序的../lib目录中,然后加载并别名它。之后,我可以将一个应用程序连接到另一个应用程序的远程套接字上,就像在channel_test.exs中所做的那样。我在两台不同的机器上开发了两个独立的凤凰应用程序,并能够发送和接收跨频道的消息。

不要忘记将{:websocket_client, github: "jeremyong/websocket_client"}添加到mix.exs依赖项中。

票数 6
EN

Stack Overflow用户

发布于 2015-07-06 23:26:17

我认为您可能想了解一下Phoenix.PubSub --只要您设法将节点连接到集群中(或者即使没有,也可以使用DB或Redis后端),您就应该能够让它们通过它相互交谈。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31257117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档