ROS中XMLRPC是什么

发布时间:2023-09-14  

XMLRPC是什么?

关于节点建立连接的技术细节,官方文档说的非常简单,在这里ROS chnal Overview。没有基础的同学看这个介绍必然还是不懂。

在ROS中,节点与节点之间的依靠节点管理器(master)牵线搭桥。

master像一个中介,它介绍节点们互相认识。一旦节点们认识了以后,master就完成自己的任务了,它就不再掺和了。

这也是为什么你启动节点后再杀死master,节点之间的通信依然保持正常的原因。

使用过电驴和迅雷而且研究过BitTorrent的同学对master的工作方式应该很熟悉,master就相当于Trker服务器,它存储着其它节点的信息。

我们每次之前都会查询Tracker服务器,找到有电影资源的节点,然后就可以与它们建立连接并开始下载电影了。

那么master是怎么给节点牵线搭桥的呢?ROS使用了一种叫XMLRPC的方式实现这个功能。

XMLRPC中的RPC的意思是远程过程调用(Remote Procedure Call)。

简单来说,远程过程调用的意思就是一个计算机中的程序(在我们这就是节点啦)可以调用另一个计算机中的函数,只要这两个计算机在一个中。

这是一种听上去很高大上的功能,它能让节点去访问网络中另一台计算机上的程序资源。

XMLRPC中的XML我们在1.1节讲消息序列化时提到了,它就是一种数据表示方式而已。

所以合起来,XMLRPC的意思就是把由XML表示的数据发送给其它计算机上的程序运行。

运行后返回的结果仍然以XML格式返回回来,然后我们通过解析它(还原回纯粹的数据)就能干别的事了。

想了解更多XMLRPC的细节可以看这个XML-RPC:概述。

举个例子,一个XMLRPC请求是下面这个样子的。因为XMLRPC是基于HTTP协议的,所以下面的就是个标准的HTTP报文。

POST / HTTP/1.1
User-Agent: XMLRPC++ 0.7
Host: localhost:11311
Content-Type: text/xml
Content-length: 78


< ?xml version="1.0"? >
< methodCall >
   < methodName >circleArea< /methodName >
      < params >
         < param >
            < value >< double >2.41< /double >< /value >
         < /param >
      < /params >
< /methodCall >

如果你没学过HTTP协议,看上面的语句可能会感到陌生。《图解HTTP》这本小书可以让你快速入门。

HTTP报文比较简单,它分两部分,前半部分是头部,后半部分是主体。

头部和主体之间用空行分开,这都是HTTP协议规定的标准。

上面主体部分的格式就是XML,见的多了你就熟悉了。

所以,XMLRPC传递的消息其实就是主体部分是XML格式的HTTP报文而已,没什么神秘的。

对应客户端一个XMLRPC请求,服务器端会执行它并返回一个响应,它也是一个HTTP报文,如下。

它的结构和请求一样,不再解释了。所以,XMLRPC跟我们上网浏览网页的过程其实差不多。

HTTP/1.1 200 OK
Date: Sat, 06 Oct 2001 23:20:04 GMT
Server: Apache.1.3.12 (Unix)
Connecon: close
Content-Type: text/xml
Content-Length: 124


< ?xml version="1.0"? >
< methodResponse >
   < params >
      < param >
         < value >< double >18.24668429131< /double >< /value >
      < /param >
   < /params >
< /methodResponse >
文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>