用于机器到机器(M2M)通信的XMPP

2024-05-16 09:52:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从事基于位置的服务项目,在这个项目中,我有几个传感器需要将异步读数发送到服务器,服务器将关联这些读数并生成结果。还有一些传感器到传感器的通信,我对使用XMPP作为传输很感兴趣,因为它具有高效的消息传递、实时性和NAT遍历性。在

我希望找到一个(python或任何其他语言)XMPP机器到机器(M2M)服务的例子,希望使用PubSub模型进行异步通信,而不是基于轮询的RPC。我在网上或在我看过的XMPP书籍中都找不到任何例子,因为它们似乎主要集中在XMPP上,用于人与人之间的交互,比如聊天、视频等

我必须遵守的一般要求是:


1。多个传感器通过XMPP相互共享数据


2。异步(PubSub)通信,订阅感兴趣的消息


3。希望用Python编写,但是任何语言都是一个好的起点


4。服务器将来自所有传感器的数据关联起来并生成结果,用户可以使用这些结果

<5/>。通过发现轻松配置/设置

如果有任何关于在哪里寻找的想法,或者一个好的起点,我们将不胜感激。在

谢谢!在


Tags: 数据项目服务器机器语言xmpp传感器nat
3条回答

这很适合XMPP的pubsub模型。在

  • 你所有的机器都是发布者和订阅者。在
  • 在本例中,您的处理服务器也将是另一个订阅服务器,它将在接收已发布项时进行数据处理。在

任何处理pubsub的例子都很容易应用。在XMPP中,JID(Jabber ID)是否表示机器的用户无关紧要,pubsub实际上并不是面向人类交互的,不像多用户聊天。在

有许多XMPP服务器支持pubsub。我自己也用过Smack和{a2}来达到类似的目的。服务器对您来说不那么重要,因为任何支持PubSub的现成产品都可以完成这项工作。更重要的是有pubsub支持的客户端库。我知道Smack有这个,但它是一个Java库,而不是python。在

我不知道所有这些必要条件,但您可以使用SleekXMPP来构建自己的。它是纯python,并且有良好文档记录的XMPP库。XMPP已经被用来进行计算机到计算机的通信,这是非常好的,因为您可以从自己的聊天客户端测试它。例如,http://www.python.org/about/success/projectpipe/

祝你好运

用于M2M的XMPP听起来是个不错的主意。在

关于客户端和服务器,请参见http://xmpp.org/about-xmpp/technology-overview/pubsub/

在pubsub服务器中,基本上所有的工作都是由服务器来完成的,而你只需要为客户机实现很少的智能。但这取决于你想如何处理发布的信息。我还没有测试过任何一个真正使用发布信息的客户。在

相关问题 更多 >