☰
dds-rpc
2026/10/14 3:33:42 网站建设 项目流程

rpc交互

一次 RPC 用两个 Topic,客户端和服务端各自一个 Writer、一个 Reader,方向交叉:

Writer 写到Reader 订的

客户端

RPCTest_ServiceRequest

RPCTest_ServiceReply

服务端

RPCTest_ServiceReply

RPCTest_ServiceRequest

客户端的请求 Writer 对上服务端的请求 Reader,请求从这边过去。服务端的回复 Writer 对上客户端的回复 Reader,结果从那边回来。

创建位置分别在requester_create和replier_create。客户端调用test_RPCTest_client_create时建自己那一对,服务端调用dds_service_create时建自己那一对。

rpc同步调用

调用方:RPC 是同步的。client->myMethod1(...)会停在当前线程里,直到服务端的回复到达,或者超过max_wait_time(demo 里是 10 秒),函数才返回。

客户端的顺序是:dds_write发出请求——在自己的 WaitSet 上调用dds_waitset_wait等回复——等回复的就是发起调用的那条线程,中间没有回调,也没有先返回一个 future 以后再取结果。myMethod2、myMethod3同样如此。

client

client rpc有三种method(rpc形态);

三个方法是同一种调用:都先发请求,再停住等回复,最后拿回一个ReturnCode。差别只在参数多少。

interface RPCTest{ ReturnCode myMethod1(in inputData indata, out outputData outdata); ReturnCode myMethod2(in inputData indata, in int32 value); ReturnCode myMethod3(); };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询