项目开发中,使用FastDDS进行通信。但是发现以下问题:
同一PC中,先启动Subscriber应用程序,然后启动Publisher应用程序。
问题现象
当Publisher的on_publication_matched被回调后(即匹配到对应的Subscriber),直接调用write操作。
write操作能执行成功,但是Subscriber程序接收不到消息。
暂时对策
当Publisher的on_publication_matched被回调后(即匹配到对应的Subscriber),延迟70ms后调用write操作。
write操作能执行成功,Subscriber程序能正常接收到消息。
我的疑问
1 创建DataReader或DataWriter,有需要延时的必要吗?
2 on_publication_matched是publisher和subscriber创建后,只要主题匹配,马上调用吗?