java如何开发发票服务_使用 Java 开发 EMQ X 服务器插件

从 v4.1 版本开始,EMQ X 提供了专门的多语言支持插件 emqx_extension_hook (https://github.com/emqx/emqx-extension-hook) ,现已支持使用其他编程语言来处理 EMQ X 中的钩子事件,开发者可以使用 Python 或者 Java 快速开发自己的插件,在官方功能的基础上进行扩展,满足自己的业务场景。例如:

  • 验证某客户端的登录权限:客户端连接时触发对应函数,通过参数获取客户端信息后通过读取数据库、比对等操作判定是否有登录权限

  • 记录客户端在线状态与上下线历史:客户端状态变动时触发对应函数,通过参数获取客户端信息,改写数据库中客户端在线状态

  • 校验某客户端的 PUB/SUB 的操作权限:发布/订阅时触发对应函数,通过参数获取客户端信息与当前主题,判定客户端是否有对应的操作权限

  • 处理会话 (Sessions) 和 消息 (Message) 事件,实现订阅关系与消息处理/存储:消息发布、状态变动时触发对应函数,获取当前客户端信息、消息状态与消息内容,转发到 Kafka 或数据库进行存储。

注:消息(Message) 类钩子,仅在企业版中支持。

Python 和 Java 驱动基于 Erlang/OTP-Port (https://erlang.org/doc/tutorial/c_port.html) 进程间通信实现,本身具有非常高的吞吐性能,本文以 Java 拓展为例介绍 EMQ X 跨语言拓展使用方式。

a54a921527664d48aec80b61ecdf891c.png

    Java 拓展使用示例    

  要求

  • EMQ X 所在服务器需安装 JDK 1.8 以上版本

  开始使用

  1. 创建 Java 项目

  2. 下载 io.emqx.extension.jar (https://github.com/emqx/emqx-extension-java-sdk/releases) 和 erlport.jar (https://github.com/emqx/emqx-extension-java-sdk/blob/master/deps/erlport-v1.1.1.jar) 文件

  3. 添加SDK io.emqx.extension.jarerlport.jar 到项目依赖

  4. 复制 examples/SampleHandler.java到您的项目中

  5. 根据 SDK SampleHandler.java 中的示例编写业务代码,确保能够成功编译

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值