数据无中心的订阅发布

前面的程序进行了完善,总体说,采用组播进行节点发现;组件名称:ObserverDDS

采用TCP,UDP通信,TCP已经解决粘包;UDP采用最大努力投递;

最大努力投递,UDP分包,传递后,接收端会按照IP+Port的方式返回数据包序列,高速发送端已经收到;发送端会在一秒内重复发送没有收到回执的数据,但是1秒后也自动消失,也就是1秒内会发送20次;接收端在5秒内不能完成接收组包,也会自动移除已经收到的数据,该数据也就投递失败了。任何无效数据1分钟内也会消失。由于会保持反复投递,所以发送端的内存可能会有压力,并没有采用内存限制方式,也许以后会添加,也很好实现。

程序默认会启用TCP,UDP2种协议,端口为0,由系统自动分配。但是当前是UDP测试,TCP算是保留。

程序启动后会定时更新发布地址列表。

1.节点

2.发布

3.订阅

以上是主要流程

项目地址:https://github.com/jinyuttt/ObserverDDS.git

原文地址:https://www.cnblogs.com/jinyu20180311/p/12005687.html