我的工作是编写带有一些并发任务的分布式客户端/服务器应用程序。所以我决定使用akka.net来解决并发问题。要在服务器和客户端之间实现ipc,请使用akka remote。由于某些原因,可能在工作站上运行多个相同类型的客户端。所以我配置了这些客户端来动态分配tcp端口。这适用于向服务器发送消息。
我的问题是将一些信息推送给客户。为完成此任务,客户端上的actor存在。现在服务器为这个actor创建一个引用。因此,它需要客户端正在侦听的端口。我的想法是使用服务器上的actor在某种连接过程中将客户端使用的tcp端口发送到服务器。
搜索了几个小时之后,我没有找到任何提示在哪里找到动态分配的tcp端口。那么客户端如何获得分配的tcp端口?
好的,我可以使用akka.cluster。但是我认为,使用akka.cluster打破了飞机。如果它解决了我的问题reamins有待观察。
答案 0 :(得分:0)
两个建议,假设是您的客户端与服务器进行第一次联系。
Views
,并在不需要查找端口的情况下发回消息。在可能的情况下,IActorRef
最好是位置透明度。IActorRefs
的{{1}}属性中提取它。答案 1 :(得分:0)
感谢帕特里克的建议我的问题已经解决了。
解决方案是在执行hello消息时从可用的发件人路径中提取所需信息。有了这些信息,服务器就能够维护所有连接的客户端和网络地址的列表。
非常感谢@ patrick。
关心格雷戈尔