`
longgangbai
  • 浏览: 7330403 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MQTT的学习研究(九)基于HTTP GET MQTT 抓取消息服务端使用

阅读更多

官方参看文档:


HTTP GET 接收主题请求协议和响应协议
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau.doc/ts21230_.htm


HTTP POST 发布主题请求协议和响应协议
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau.doc/ts21220_.htm

 

HTTP DELETE 订阅主题请求协议和响应协议
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau.doc/ts21240_.htm

 

请求响应头各个字段的含义的讲解
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau.doc/ts21250_.htm


响应错误处理
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau.doc/ts21340_.htm

 

 

HTTP GET: WebSphere MQ bridge for HTTP command

The HTTP GET operation gets a message from a WebSphere® MQ queue. The message is left on the queue. The HTTP GET operation is equivalent to browsing a WebSphere MQ queue.

Syntax


Request

>>-+-DELETE-+-- --| Path |-- --HTTP version--CRLF--------------->
   '-GET----'                                       

   .-CRLF---------------.  .-CRLF---------------.   
   V                    |  V                    |   
>----+----------------+-+----+----------------+-+--------------->
     '-general-header-'      '-request-header-'     

   .-CRLF----------------------------.   
   V                                 |   
>----+-----------------------------+-+-------------------------><
     '-| Entity-header (Request) |-'     

Path

|--/--contextRoot--/-------------------------------------------->

>--msg/--+-queue/--queueName--+-------------+-+--/--------------|
         |                    '-@--qMgrName-' |      
         '-topic/--topicName------------------'      

entity-header (Request)

|--+----------------------------------------------+-------------|
   +-standard entity-header-- --entity-value------+   
   +-x-msg-correlId - --correlation ID------------+   
   +-x-msg-msgId - --message ID-------------------+   
   +-x-msg-range-- --range------------------------+   
   +-x-msg-require-headers-- --entity header name-+   
   '-x-msg-wait - --wait time---------------------'   

Note:
  1. If a question mark (?) is used it must be substituted with %3f. For example, orange?topic should be specified as orange%3ftopic.
  2. @qMgrName is only valid on an HTTP POST

Response

>>-HTTP version-- --HTTP Status-Code-- --HTTP Reason-Phrase--CRLF-->

   .-CRLF---------------.  .-CRLF----------------.   
   V                    |  V                     |   
>----+----------------+-+----+-----------------+-+-------------->
     '-general-header-'      '-response-header-'     

   .-CRLF-----------------------------.                      
   V                                  |                      
>----+------------------------------+-+--+---------------+-----><
     '-| Entity-header (Response) |-'    '-CRLF--Message-'   

entity-header (Response)

|--+-----------------------------------------+------------------|
   +-standard entity-header-- --entity-value-+   
   +-x-msg-class-- --message type------------+   
   +-x-msg-correlId-- --correlation ID-------+   
   +-x-msg-encoding-- --encoding type--------+   
   +-x-msg-expiry-- --duration---------------+   
   +-x-msg-format-- --message format---------+   
   +-x-msg-msgId-- --message ID--------------+   
   +-x-msg-persistence-- --persistence-------+   
   +-x-msg-priority-- --priority class-------+   
   +-x-msg-replyTo-- --reply-to queue--------+   
   +-x-msg-timestamp-- --HTTP-date-----------+   
   '-x-msg-usr-- --user properties-----------'   

HTTP GET example

HTTP GET gets a message from a queue. The message remains on the queue. In WebSphere MQ terms, HTTP GET is a browse request. You could create an HTTP DELETE request using a Java client, a browser form, or an AJAX toolkit.

Figure 1 is an HTTP request to browse the next message on queue called myQueue.

The request contains the HTTP request header x-msg-wait, which instructs WebSphere MQ bridge for HTTP how long to wait for a message to arrive on the queue. The request also contains the x-msg-require-headers request header, which specifies that the client is to receive the message correlation ID in the response.

Figure 1. Example of an HTTP GET request
GET /msg/queue/myQueue/ HTTP/1.1
Host: www.example.org
x-msg-wait: 10
x-msg-require-headers: correlID

Figure 2 is the response returned to the client. The correlation ID is returned to the client, as requested in x-msg-require-headers of the request.

Figure 2. Example of an HTTP GET response
HTTP/1.1 200 OK
Date: Wed, 2 Jan 2007 22:38:34 GMT
Server: Apache-Coyote/1.1 WMQ-HTTP/1.1 JEE-Bridge/1.1
Content-Length: 50
Content-Type: text/plain; charset=utf-8
x-msg-correlId: 1234567890

Here's my message body that will appear on the queue.
分享到:
评论

相关推荐

    基于Java的netty-mqtt MQTT 3.1.1协议服务端与客户端设计源码

    netty-mqtt是一个基于Java开发的MQTT 3.1.1协议服务端与客户端,包含113个文件,其中包括87个Java源文件、8个XML文件、7个Iml文件、3个YAML文件、3个JKS文件、2个Factories文件、1个LICENSE文件和1个Markdown文件。...

    基于MQTT推送服务端java实现

    MQTT(Message Queuing Telemetry Transport)是一种...通过学习和理解以上知识点,并结合提供的代码进行研究,你应该能够搭建和运行一个基本的MQTT服务端。不断迭代和优化,你的服务器将能适应各种复杂的需求和场景。

    C# 基于MQTTNet的服务端与客户端通信案例

    在本文中,我们将深入探讨如何使用C#语言和MQTTNet库实现MQTT服务端与客户端的通信。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,常用于物联网(IoT)应用,因为它对网络带宽的...

    AspNetCore基于MQTTnet.AspNetCore3.0.9的服务端实例(支持Websocket)

    官方下载的MQTTNet服务端实例用的基于MQTTNet的服务端,不支持Websocket交互,通过反复查阅资料,使用基于.Net Core(3.1) 和MQTTnet.AspNetCore(3.0.9)的服务端程序可以实现同时支持cs客户端、Websocket客户端的...

    MQTT C# demo测试案例 包含服务端客户端

    MQTT基于发布/订阅模式,其中消息发布者将数据发送到特定主题,而消息订阅者则通过订阅这些主题来接收数据。这种模式非常适合资源有限的设备,如嵌入式系统和移动设备,因为它具有低带宽、低功耗和高可靠性。 在C#...

    MQTT服务端

    在本地运行MQTT服务端,你可以配合MQTT客户端进行测试和开发工作,例如使用Mosquitto、EMQ X Broker或HiveMQ等开源MQTT Broker软件。客户端可以是命令行工具如mosquitto_sub和mosquitto_pub,也可以是编程语言的库,...

    mqtt+服务端+客户端

    服务端通常指的是MQTT代理,例如Apache Apollo,它是一个高性能的消息中间件,支持MQTT协议。Apache Apollo提供了高度可扩展和容错性的消息传递服务,允许众多客户端连接并交换数据。`apache-apollo-1.7.1-windows-...

    mqtt服务端搭建到android使用教程

    MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,常用于物联网(IoT)设备之间的通信。本教程将指导你如何搭建MQTT服务端,并将其集成到Android应用中。 **一、MQTT服务端搭建** 1. *...

    java MQTT server ,MQTT client 直接使用java实现,快速连接物联网

    基于 t-io 实现的低延迟、高性能的 mqtt 物联网组件 支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。 支持 websocket mqtt 子协议(支持 mqtt.js)。 支持 http rest api,http api 文档详见。 支持 MQTT client ...

    Winform中使用MQTTnet实现MQTT的服务端和客户端之间的通信以及将订阅的消息保存到文件示例代码.rar

    Winform中使用MQTTnet实现MQTT的服务端和客户端之间的通信以及将订阅的消息保存到文件示例代码.rar Winform中使用MQTTnet实现MQTT的服务端和客户端之间的通信以及将订阅的消息保存到文件示例代码.rar Winform中使用...

    MQTT服务端客户端测试工具

    MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,常用于物联网(IoT)设备之间的通信。这种协议设计的目标是高效、可靠且低开销,尤其适合于资源有限的设备和网络条件不稳定的环境。在...

    delphi Mqtt服务端和客户端源码

    Delphi MQTT服务端和客户端源码是一套基于Delphi编程语言实现的MQTT通信解决方案。MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息传输协议,广泛应用于物联网(IoT)领域,特别是资源有限...

    开源 MQTT 服务器(基于reactor-netty实现高性能的、可扩展、支持千万级设备接入集群)

    开源 MQTT 服务器(基于reactor-netty实现高性能的、可扩展、支持千万级设备接入集群)支持 mqtt 3.1.1、mqtt 5 SMQTT基于reactor-netty(spring-webflux底层依赖) 开发,底层采用Reactor3反应堆模型,支持单机部署,...

    基于netty实现mqtt协议 服务器端开发,可解码http、mqtt协议请求

    1.基于netty绑定端口监听,对于mqtt消息和http请求消息分别绑定不同的监听端口; 2.在MQTTServerInitializer中,分别添加mqtt编码解码器和http编码解码器,并分别将自定义的mqtt消息处理handle类和http消息handle类...

    MQTTnet 在.net core中的应用--服务端+订阅发布客户端(支持阿里云mqtt)

    MQTT是一种基于发布/订阅模式的消息协议,广泛应用于物联网、移动应用、小型设备等场景。其特点包括低开销、小延迟、网络连接可靠性高以及发布者与订阅者解耦。 **2. MQTTnet服务端** 创建MQTTnet服务器时,首先...

    C#使用 MQTTnet 快速实现 MQTT 通信 Demo

    MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅式消息协议,广泛应用于物联网(IoT)场景,因为它具有低开销、高可靠性以及适用于受限网络的特点。在Windows 7环境下,使用Visual Studio 2017...

    C#使用MQTT测试,客户端和服务端

    C#使用MQTT测试

    Mqtt通讯客户端和服务端代码

    "Mqtt通讯客户端和服务端代码"项目提供了一个完整的MQTT通信环境,包含服务器和客户端的实现,是学习和实践MQTT协议的理想起点。通过使用C#和Paho MQTT库,开发者可以深入理解MQTT的工作原理,并将其应用到实际的...

    Mqtt通信协议winform服务端测试小工具

    在本项目中,"Mqtt通信协议winform服务端测试小工具" 是一个基于Windows Forms(Winform)的应用程序,用于测试和验证MQTT服务端的功能。 Winform是.NET框架下开发桌面应用的常用界面库,提供了丰富的控件和设计...

    delphi mqtt客户和服务端

    delphi中使用的mqtt,有demo,不知道哪位大神搞的,xe11下整理下。MQTT 协议实现的消息订阅客户端、消息发布客户端、及消息服务器, Finish Retain *) (* Web Sites http://www.alphaworks.ibm.com/tech/rsmb ...

Global site tag (gtag.js) - Google Analytics