OpenDDS - DCPSInfoRepo 被终止,但发布者和订阅者正在通信
Posted
技术标签:
【中文标题】OpenDDS - DCPSInfoRepo 被终止,但发布者和订阅者正在通信【英文标题】:OpenDDS - DCPSInfoRepo is killed but the publisher and subscriber are communicating 【发布时间】:2017-08-18 03:54:28 【问题描述】:我正在使用来自OpenDDS-3.11/examples/DCPS/IntroductionToOpenDDS
的OpenDDS
DCPS 示例在Ubuntu 16
上进行锻炼。根据在同一位置找到的AAA_README.txt
,我首先开始DCPSInfoRepo
OpenDDS-3.11/bin/DCPSInfoRepo -ORBEndpoint iiop://localhost:12345
,然后分别是subscriber
和publisher
。
我可以让publisher
发布和subscriber
接收订阅的主题。我了解 DCPSInfoRepo
创建 repo.ior
将包含参与者的条目。
但是如果我杀死DCPSInfoRepo
,我可以看到publisher
和subscriber
继续通信,但显然无法添加另一个参与者,因为DCPSInfoRepo
没有运行。
我想知道为什么publisher
和subscriber
在没有DCPSInfoRepo
的情况下继续通信。添加参与者后我们不需要DCPSInfoRepo
服务器吗?请澄清。
【问题讨论】:
【参考方案1】:DCPSInfoRepo 仅用于发现,在发布者/订阅者相互认识的那一刻,即使没有 DCPSInfoRepo,他们也会继续通信。
我建议您使用来自 DDS 标准的 RTPS 发现。这完全消除了对 DCPSInfoRepo 的需求(这是单点故障)。
【讨论】:
感谢您的澄清。现在,我了解了 DCPSInfoRepo 的作用。感谢您提供有关 RTPS 的提示,但它是否支持通过 TCP 或仅 UDP 连接的端点。我对 DDS 还很陌生。任何指针将不胜感激。以上是关于OpenDDS - DCPSInfoRepo 被终止,但发布者和订阅者正在通信的主要内容,如果未能解决你的问题,请参考以下文章
OpenDDS 中的哪个库包含“OpenDDS::DCPS::operator<<”?