此article通过MQTT通过rtcomm库讨论IBM WebSphere Liberty WebRTC支持。
我感兴趣的是在WebSphere Liberty上的Java EE JMS(队列/主题)目标和用其他语言编写的客户端之间交换消息。
是否可以通过MQTT从客户端连接到WebSphere Liberty并与JMS目标交换消息?
WebSphere Liberty是否支持其他跨语言消息传递协议,例如AMQP或STOMP?
答案 0 :(得分:0)
就消息传递而言,WebSphere Liberty支持JMS,如记录here:
Liberty支持异步消息传递作为基于Java™消息服务(JMS)编程接口的通信方法。 JMS接口为Java程序(客户端和Java EE应用程序)提供了一种通用方式来创建,发送,接收和读取作为JMS消息的异步请求。
因此,Liberty本身不实现MQTT协议(或任何其他消息传递协议)。它使用中间人使用协议。以类似的方式,Liberty可以实现任何消息传递协议,前提是有一个JMS接口可以访问和操作使用所述协议传输的消息。
在作为问题一部分的链接文章中,这是由MQTT Message Broker'零件。本文中的两个例子是:
IBM红皮书中详细介绍了使用带有MQTT协议的WebSphere MQ Telemetry服务:Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry。
MQTT协议本身旨在支持受约束的设备。引用:
MQTT消息传递协议专为受限环境中的设备而设计,例如处理能力有限的嵌入式系统和连接到不可靠网络的内存或系统。
此外,MQTT依赖于发布/订阅模型,并且不提供点对点消息传递。
对于问题中提到的与语言无关的消息传递要求,您可以考虑基于产品的解决方案,即企业服务总线(ESB)。 ESB用于路由,转换和操纵通信系统之间传输中的消息。
商业ESB的示例是IBM Integration Bus,Oracle Enterprise Service Bus和SAP Process Integration。开源替代品包括Apache Camel,JBoss ESB和Mule ESB。
答案 1 :(得分:0)
每个JMS连接都需要JMS提供程序 - 这是JMS代码连接的东西。
根据提供商的不同,您可以使用其他语言连接到该提供商。 JMS提供程序必须为这些其他语言提供非JMS接口。
例如,您可以将IBM MQ或AMQP等用作JMS提供程序,然后使用MQ或AMQP等提供的接口连接其他语言(如python或ruby或JMS提供程序支持的任何语言)。 / p>
我所知道的唯一具有JMS接口的MQTT协议服务器是IBM IOT MessageSight。它为您提供了基于发布/订阅和队列的支持。但基于队列的支持仅可从MessageSight JMS接口获得。