Bootstrap

Iceoryx请求/响应通信

除了iceoryx最初支持的发布-订阅消息传递模式外,请求-响应模式也广泛应用于iceoryx所处的领域。由于我们的目标是与ROS 2进行良好的集成,因此这也是支持其通常用于控制机器人的服务通信方法所必需的。
虽然发布-订阅是一种持续提供数据更新的数据分发模式,但请求-响应是一种仅按需提供数据的远程过程调用和任务分发模式。这意味着有一个或多个客户端请求服务器执行任务。
在iceoryx中,客户端和服务器将构建在我们已经用于发布订阅的相同构建块之上,如ChunkSender和ChunkReceiver。

客户端和服务器应能够与WaitSet和Listener结合使用,以提供基于事件的通信方式,而不是轮询。与发布-订阅一样,ServiceDescription将用于将客户端与相应的服务器连接起来。为了支持异步请求,序列ID应该是每个请求的一部分,它将被复制到相应的响应中。

这是对非类型化客户端和服务器类的概述。

客户端和服务器正在重用ChunkSender和ChunkReceiver构建块。客户端使用ChunkSender发送请求,使用ChunkReceiver获取响应,而服务器使用ChunkReceiver获取请求,使用ChunkSender发送响应。

由于响应与特定的请求相关联,loan方法需要一个请求来用正确的设置填充响应。或者,Request可以有一个createRespon

;