3.Hono通过网关连接到AMQP

3.Hono通过网关连接到AMQP

​ 使用基于自定义TCP协议的设备连接到Hono的标准AMQP适配器,通过实现 ProtocolGateway在TCP上侦听要执行的命令代表设备,并使用中的AMQP设备客户端类将它们映射到与Hono进行交互
image-20221012135218124

条件

  1. 下载一个3.8.1及以上的Maven
  2. jdk17
  3. 拉取Hono源代码 地址

编译Hono

git clone https://github.com/eclipse-hono/hono.git
export DOCKER_HOST
# in the "hono" folder containing the source code
mvn clean install -Pbuild-docker-image,metrics-prometheus

image-20221011161332302

编译成功之后会产生hono的image

image-20221011161424502

启动网关

网关配置

​ 默认情况下,网关侦听设备(127.0.0.1)上的端口6666。这可以在application.yml文件或通过相应的命令行参数。以同样的方式连接到AMQP可以配置适配器。默认情况下,网关连接到Hono Sandbox的AMQP适配器,使用gw@DEFAULT_TENANT作为用户名。

gateway:
  tcp:
   insecurePort: 6666
   insecurePortBindAddress: "127.0.0.1"
  amqp:
    host: hono.eclipseprojects.io
    port: 5672
    username: gw@DEFAULT_TENANT
    password: gw-secret
    serverRole: AMQP adapter

quarkus:
  log:
    console:
      color: true
    level: INFO
    min-level: TRACE
    category:
      "io.quarkus.vertx.core.runtime":
        level: DEBUG
  vertx:
    prefer-native-transport: true
    warning-exception-time: "PT1.5S"
    resolver:
      cache-max-time-to-live: 0
java -jar target/quarkus-app/quarkus-run.jar

image-20221011162858587

连接到网关

nc 127.0.0.1 6666
  • 可以使用login命令设置设备标识符,该命令要求将设备标识符作为参数:
login 4712
device [4712] logged in
OK

image-20221011163345176

  • 登录后,设备可以发送事件
event Hello there ...
OK
telemetry 0 Unimportant data ...
OK

请注意,只有当下游消费者连接到设备的租户时,这才有效。
设备还可以订阅命令

subscribe
OK

image-20221011170923681

  • 如果应用程序发送单向命令,则该命令会记录到控制台
ONE-WAY COMMAND [name: setBrightness]: {"brightness": 25}

常用命令

网关支持以下命令

  • login deviceId ----对给定设备进行身份验证。所有后续命令都在已登录设备。此命令可用于通过使用其他设备登录来切换设备上下文
    标识符。
  • event payload ---- 将payload作为事件发送。
  • telemetry qos payload ---- 使用以下内容指示的传递语义将有效负载作为遥测消息发送
    服务质量。支持的值为0(最多一次)和1(至少一次)。
  • subscribe ---- 开始接收命令。只有应用程序发送的单向命令才会转发到控制台。
  • unsubscribe ---- 停止接收命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值