现象

今天遇到的问题是: 使用的是Ros1, 在先订阅后发布时, 会导致订阅者无法收到订阅的消息, 除非在发布者发布后重新订阅.

思考

以前使用的是Ros2似乎并不关心订阅和发布的先后顺序,  似乎都可以收到消息.

这个问题后面再确认下, 今天也记录下.

因为计算机上已经没有Ros2的环境了, 所以这个问题暂时搁置, 等有机会的确认下, 不过如果有解决办法的话, 那么Ros2订阅和发布的先后顺序也就不重要了.

这个问题是个致命的问题, 因为在两个节点通信时, 如果一方没有订阅成功消息, 那么后面的操作也就没有用了.

如果在发布者发布后再订阅, 那么也不是个办法. 因为一个节点的不仅会有订阅者也会有发布者, 无法确定谁先谁后的顺序, 这样是无法解决这个问题的.

>以下是代码:

template<typename MsgConstPtr, typename funCallback>
void Subscriber::createSubscriber(funCallback &callback, uint32_t nSizeQueue) {m_subsriber = Handle::ptrNodeHandle->subscribe(m_strTopic, nSizeQueue, callback);
}

解决办法

经过查看Ros有关源码发现, 最后解决了这个问题

根据循环判断订阅者查询发布者的数量, 如果为0那么说明订阅失败, 重新订阅直到订阅成功.

> >以下是代码:

    template<typename MsgConstPtr, typename funCallback>void 

ros先订阅后发布 无法收到消息的解决办法相关推荐

  1. ros发布者退出后重新发布, 订阅者无法收到消息的解决办法

    在ubuntu16.04,ros-kinetic环境中开发发现,当先启动订阅者后启动发布者,那么此时订阅者有可能收不到消息.在订阅者正常接收消息的情况下,此时如果再次重新启动发布者那么订阅者也有可能收 ...

  2. apache 安装后默认主页无法打开_CAD教程:CAD软件打开图纸后钢筋符号无法读取的解决办法...

    设计师在日常绘图工作中经常会用CAD软件打开其他人发送过来的结构图纸,图纸打开后有些时候会出现钢筋符号显示为问号的情况.那么作为一名CAD遇到这种状况该如何解决呢?小编仔细研究了一下发现大致情况分为两 ...

  3. # vmware异常关机后,虚拟系统无法启动的解决办法

    # vmware异常关机后,虚拟系统无法启动的解决办法 参考文章: (1)# vmware异常关机后,虚拟系统无法启动的解决办法 (2)https://www.cnblogs.com/sstealer ...

  4. vm虚拟机安装系统后出现operating system not found解决办法(VM装ghost 不能进系统的解决方法)

    vm虚拟机安装系统后出现operating system not found解决办法不知你使用那种软件分的区?   用DIANGEN的话,它本来就清楚列明了激活分区选项的. 如果用PQ分区的话,还必须 ...

  5. Win7休眠后唤醒出现黑屏的解决办法

    进入睡眠状态可很好地节约电源和延长硬件的使用寿命,很多用户的电脑进入睡眠状态后,唤醒无法正常进入屏幕,而是变成黑屏的故障,怎么回事?其实出现这种情况并非什么系统故障问题,下面小编给大家分享Win7休眠 ...

  6. HTML页面加载异常,按F12调试后居然又好了的解决办法!

    HTML页面加载异常,按F12调试后居然又好了的解决办法! 参考文章: (1)HTML页面加载异常,按F12调试后居然又好了的解决办法! (2)https://www.cnblogs.com/Jaco ...

  7. 双击打开Excel2016文件后无法直接显示文件内容的解决办法

    双击打开Excel2016文件后无法直接显示文件内容的解决办法 1.打开Excel2016文件,选择 文件–>选项–>高级–>常规,不勾选"忽略使用动态数据交换(DDE)的 ...

  8. kesu移动硬盘(固态硬盘)插上电脑后不显示盘符的解决办法

    今天在电脑上插上移动硬盘后发现完全没显示: 解决办法 我的电脑–>右键管理–>存储–>磁盘管理–>找到新的磁盘右键初始化 初始化后显示未分配,右键点击,选择新建简单卷 搞定 参 ...

  9. 关于修改WIFI代理后手机部分APP无法使用的解决办法

    关于修改WIFI代理后手机部分APP无法使用的解决办法 最近在练习爬虫抓取手机app数据时出现了一个问题,就是修改wifi代理,使用fiddler代理时,使用斗鱼app显示无法连接到服务器,在网上搜索 ...

最新文章

  1. SAP RETAIL WB02 为门店激活物料分类账报错 - Distribution chain NMI1 00 not valid for retail price determination -
  2. Java 中的反射机制
  3. 策略模式(Stratety)
  4. org.hibernate.util.JDBCExceptionReporterorg.hibern
  5. html5视频播放怎么结束,html5设置或返回音频/视频是否应该在结束时再次播放的属性loop...
  6. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”
  7. Linux串口编程_termios
  8. Msys2 国内源(2017.3.30)
  9. 程序员小哥月入5万,却被丈母娘拒绝,丈母娘一番话让小哥很尴尬
  10. 机器学习基础:极大似然估计(Machine Learning Fundamentals: Maximum Likelihood Estimation)
  11. 网站全国公安机关互联网站安全服务平台备案流程
  12. 群相册上传照片显示服务器繁忙,QQ相册上传速度慢怎么办 QQ相册上传不了照片解决方法...
  13. 使用 wpa_supplicant 连接 WiFi
  14. 關於小米路由器老毛子Padavan固件之使用
  15. 学习笔记 Tianmao 篇 recyclerView 辅助的RecycleAdapterImpl类(适配自定义 模板)
  16. 一文看懂李录价值投资体系
  17. 初学者 深度学习 人工神经网络 可视化网站
  18. java将office文档,word,ppt,pdf文档转换成swf文件在线预览
  19. 网络协议 -- IP地址
  20. 禁用IP的mysql+php设计

热门文章

  1. python语句print(type)的输出结果是_Python语句print(type({ }))的输出结果是( )。_学小易找答案...
  2. 大白话5分钟带你走进人工智能-第二十二节决策树系列之概念介绍(1)
  3. 一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay
  4. SpringBoot系列(6)——使用AOP处理请求
  5. 《强化学习》中的第14章:心理学
  6. python request microsoft graph_Microsoft Graph API:授权未找到
  7. python3.8编程实例_Python3.8动态人脸识别实例
  8. hbase1.1.1 连接集群_hbase1.2.3集群搭建
  9. 【Bug Fix】Error : Can#39;t create table #39;moshop_1.#sql-534_185#39; (errno: 150)
  10. mysql定制化_【MySQL技巧】定制你的MySQL命令行