从akka.net remote

时间:2016-01-12 11:52:31

标签: tcp port akka.net

我的工作是编写带有一些并发任务的分布式客户端/服务器应用程序。所以我决定使用akka.net来解决并发问题。要在服务器和客户端之间实现ipc,请使用akka remote。由于某些原因,可能在工作站上运行多个相同类型的客户端。所以我配置了这些客户端来动态分配tcp端口。这适用于向服务器发送消息。

我的问题是将一些信息推送给客户。为完成此任务,客户端上的actor存在。现在服务器为这个actor创建一个引用。因此,它需要客户端正在侦听的端口。我的想法是使用服务器上的actor在某种连接过程中将客户端使用的tcp端口发送到服务器。

搜索了几个小时之后,我没有找到任何提示在哪里找到动态分配的tcp端口。那么客户端如何获得分配的tcp端口?

好的,我可以使用akka.cluster。但是我认为,使用akka.cluster打破了飞机。如果它解决了我的问题reamins有待观察。

2 个答案:

答案 0 :(得分:0)

两个建议,假设是您的客户端与服务器进行第一次联系。

  1. 我让服务器跟踪哪些客户端已连接。我可能每隔几秒钟从每个客户端系统发送一次心跳消息。这样,您可以为每个活动客户端存储Views,并在不需要查找端口的情况下发回消息。在可能的情况下,IActorRef最好是位置透明度。
  2. 如果您确实需要显式查找端口,则可以从客户端系统上某个角色的IActorRefs的{​​{1}}属性中提取它。

答案 1 :(得分:0)

感谢帕特里克的建议我的问题已经解决了。

解决方案是在执行hello消息时从可用的发件人路径中提取所需信息。有了这些信息,服务器就能够维护所有连接的客户端和网络地址的列表。

非常感谢@ patrick。

关心格雷戈尔