在Delphi中接收OpenMQ消息

在Delphi中接收OpenMQ消息,delphi,glassfish,openmq,sonicmq,Delphi,Glassfish,Openmq,Sonicmq,我需要在Glassfish服务器和Delphi之间进行通信。我需要接收来自它的消息。我发现Glassfish使用OpenMQ代理 首先,我找到了delphi的jms库。我发现只有JMS接口。并发现了SonicMQ JMS实现。但正如我发现的,SonicMQ和OpenMQ是JMS的不同代理。也许我错了 我还发现了适用于OpenMQ的Habari客户端库,但这些库不是免费的 也许有人知道这个问题的免费解决方案?或者我弄错了,我可以用SonicMQ implemantation 我已经下载了Habar

我需要在Glassfish服务器和Delphi之间进行通信。我需要接收来自它的消息。我发现Glassfish使用OpenMQ代理

首先,我找到了delphi的jms库。我发现只有JMS接口。并发现了SonicMQ JMS实现。但正如我发现的,SonicMQ和OpenMQ是JMS的不同代理。也许我错了

我还发现了适用于OpenMQ的Habari客户端库,但这些库不是免费的

也许有人知道这个问题的免费解决方案?或者我弄错了,我可以用SonicMQ implemantation

我已经下载了Habari演示程序,但无法连接到glassfish服务器(连接完全关闭)。也许我做错了什么?我只需要得到消息。我不需要送他们


我以前从未使用过JMS,这就是为什么我会有这样的问题。

正如您在评论中所写,运行GlassFish服务器的组织不允许使用独立于平台的STOMP协议访问服务器

这意味着与消息代理交换消息的唯一方法是使用专有的Java client for OpenMQ(GlassFish中的默认JMS提供程序)

因此,您需要一个Java/Delphi桥,它使用Java客户机接收消息,然后将消息传递到Delphi端。与Delphi端的通信可以通过TCP/IP完成,这将允许同步和异步接收消息:要么使用请求/响应通信方式(“同步”通信,拉取下一条消息由Delphi端启动),要么使用Delphi端的侦听器线程将消息发送到该线程“异步”可以从Java端推送到



通过C API可以实现不同的通信路径。这需要在Delphi中导入C客户端库。C-API的程序员指南可在中找到。

如您在评论中所述,运行GlassFish服务器的组织不允许使用独立于平台的STOMP协议访问服务器

这意味着与消息代理交换消息的唯一方法是使用专有的Java client for OpenMQ(GlassFish中的默认JMS提供程序)

因此,您需要一个Java/Delphi桥接器,它使用Java客户端接收消息,然后将消息传递给Delphi端。与Delphi端的通信可以通过TCP/IP完成,这将允许同步和异步接收消息:或者使用请求/响应通信样式(“同步”)“通信,拉取下一条消息由Delphi端启动)或Delphi端的侦听器线程,消息将从Java端“异步”推送到该线程



通过C API可以实现不同的通信路径。这需要在Delphi中导入C客户机库。c-api的程序员指南可在中找到。

正如您在评论中所写,运行GlassFish服务器的组织不允许使用独立于平台的STOMP协议访问服务器

这意味着与消息代理交换消息的唯一方法是使用专有的Java client for OpenMQ(GlassFish中的默认JMS提供程序)

因此,您需要一个Java/Delphi桥,它使用Java客户机接收消息,然后将消息传递到Delphi端。与Delphi端的通信可以通过TCP/IP完成,这将允许同步和异步接收消息:要么使用请求/响应通信方式(“同步”通信,拉取下一条消息由Delphi端启动),要么使用Delphi端的侦听器线程将消息发送到该线程“异步”可以从Java端推送到



通过C API可以实现不同的通信路径。这需要在Delphi中导入C客户端库。C-API的程序员指南可在中找到。

如您在评论中所述,运行GlassFish服务器的组织不允许使用独立于平台的STOMP协议访问服务器

这意味着与消息代理交换消息的唯一方法是使用专有的Java client for OpenMQ(GlassFish中的默认JMS提供程序)

因此,您需要一个Java/Delphi桥接器,它使用Java客户端接收消息,然后将消息传递给Delphi端。与Delphi端的通信可以通过TCP/IP完成,这将允许同步和异步接收消息:或者使用请求/响应通信样式(“同步”)“通信,拉取下一条消息由Delphi端启动)或Delphi端的侦听器线程,消息将从Java端“异步”推送到该线程



通过C API可以实现不同的通信路径。这需要在Delphi中导入C客户机库。c-api的程序员指南可在中找到。

“连接优雅地关闭”是一条非常自然的信息。您需要理解它的含义。您可以联系我(我是Habari客户端库的作者)以获得支持。Habari客户端连接要求OpenMQ具有活动STOMP侦听器。您可以在Habari文档.p.s.中找到在OpenMQ中启用STOMP的步骤。所有JMS代理都使用自己的专有wire格式,而STOMP、AMQP和MQTT是标准wire格式的示例,这些格式可与许多消息代理一起使用。(JMS是API,不是协议)非常感谢您帮助我理解这个问题。据我所知,我需要在Glassfish服务器上启用STOMP。如果是这样,就有问题了。我不能这样做,因为服务器属于另一个组织。他们给了我QBrowser来测试连接。QBrowser可以毫无问题地接收消息。P.S.I.deci