首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HTTP作为传输的消息传递中间件

使用HTTP作为传输的消息传递中间件
EN

Stack Overflow用户
提问于 2013-08-26 18:53:54
回答 2查看 1.3K关注 0票数 0

我正在寻找允许客户端从服务器接收消息(推送通知)的选项。客户端是一个ARM/Linux嵌入式设备,在功能上类似于Raspberry Pi。

因为客户机可能在防火墙后面,所以我想使用可以在HTTP之上传输的面向消息的中间件(MOM)。我认为这排除了那些基于AMQP的妈妈。

MOM服务器应该支持Linux平台。MOM还应该提供一个可以在ARM/Linux平台上编译的C或C++客户端库。

我知道HTTP长轮询技术,以及HTML5 WebSockets和服务器发送的事件。但是我更喜欢一个更高级(但很轻量级)的解决方案,它负责通过HTTP在A点和B点之间传输消息。如果必须将消息格式化为XML、JSON、纯文本或二进制,则无关紧要。

EN

回答 2

Stack Overflow用户

发布于 2013-08-26 19:17:33

我成功使用的两个是XML-RPCgSOAP

  • : 它是一种规范和一组实现,允许软件在不同的操作系统上运行,运行在不同的环境中,通过Internet进行过程调用。 它是远程过程调用,使用HTTP作为传输,使用XML作为编码。XML设计得尽可能简单,同时允许传输、处理和返回复杂的数据结构。
  • gSOAP: gSOAP工具包是一个用于SOAP/XML服务和通用(非SOAP) C/C++ XML数据绑定的C和C++软件开发工具包。该工具包分析WSDL和XML (单独或作为一个组合集),并将XML类型和SOAP消息传递协议映射到易于使用、高效的C和C++代码。它还支持通过自动生成XML序列化代码和WSDL规范,将C和C++应用程序公开为SOAP/XML服务。或者您可以简单地使用它将XML自动转换为C和C++数据。该工具包支持生成带有或不带STL的纯ANSI或C++的选项。
票数 1
EN

Stack Overflow用户

发布于 2013-08-27 20:13:33

根据我的研究,这些是可用的MOM技术,它们使用HTTP作为传输,并具有C/C++客户端库:

XMPP

可扩展消息和存在协议(XMPP)是一种基于XML (Extensible Markup Language).The协议的面向消息中间件的通信协议,最初命名为Jabber,1999年由Jabber开放源代码社区开发,用于几乎实时、即时消息(IM)、存在信息和联系人列表维护。为了便于扩展,该协议还被用于发布订阅系统、VoIP信令、视频、文件传输、游戏、物联网等应用程序,如智能电网和社交网络服务。(从维基百科)

ActiveMQ

Apache是一个用ActiveMQ编写的开源消息代理,它与一个完整的(JMS)客户端一起编写。它提供了“企业特性”,在这种情况下,这意味着促进来自多个客户端或服务器的通信。受支持的客户端包括明显的通过JMS1.1的Java以及其他几个“跨语言”客户机。除了虚拟内存、缓存和日志持久化之外,通信还具有计算机集群和将任何数据库用作JMS持久性提供程序的能力。(从维基百科)

泽洛

Zerogw是一个http到zeromq网关。这意味着它侦听HTTP、解析请求并使用zeromq (ZMQ_REQ)发送请求。然后等待回复并使用从zeromq套接字接收到的数据进行响应。 从V0.3zerogw开始,它还支持WebSockets。Websockets是通过使用ZMQ_PUB套接字转发传入消息和从ZMQ_SUB套接字监听clommand来实现的。每个WebSocket客户端都可以订阅无限数量的主题。它控制消息(例如订阅)或消息到指定的主题,这将有效地发送给订阅到该特定主题的每个WebSocket。(来自GitHub零域页面)

还有HyperText InterORB协议(HTIOP),但是TAO似乎是唯一支持它的CORBA。似乎没有人使用它(如果我错了,请纠正我)。

正在进行的工作使OMG的数据分发处 (DDS)网络支持.

我也开始考虑使用WebSockets进行双向通信的想法,尽管它们的本质是“低级”的。对于感兴趣的人,现有的C/C++库包括:

  • libwebsockets
  • websocket++
  • QWebSockets
  • Wt (C++ web开发工具包,包括对WebSockets的支持)

有一个开放的Websocket应用程序消息传递协议 (WAMP),它为远程过程调用和发布-订阅模式提供异步消息传递模式。WAMP有很多实现,但是没有一个是用C/C++编写的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18450996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档