java sdk 如何获取到发送端的真实ip

环境信息

  • EMQ X 版本:4.2。14
  • 操作系统及版本:centos 7
  • 其他

问题描述

我们的设备通过mqtt上报信息到服务端,java服务端如何能够获取到设备的ip呢?

配置文件及日志

使用exhook监听设备登陆的状态和消息流转的钩子,参考文档 https://docs.emqx.cn/enterprise/v4.3/modules/exhook.html#设计


您好,我安装的emqx服务中,没有文档中的“ lib/emqx_exhook-<x.y.z>/priv/protos/exhook.proto 文件”,并且往下的priv目录中没有exhook.proto文件
或者有其他方式吗?或者有简单的java的demo源码吗?


请问 erlport.jar有pom依赖么?或者源码吗?

这个是4.2版本及之前的;请使用4.3及以上的版本。首先你需要自己会grpc,然后可以参考demo:https://github.com/emqx/emqx-extension-examples/tree/master/exhook-svr-java grpc需要的proto 一般在你使用的版本 安装目录下 lib/emqx_exhook-x.x.x/priv/protos/ 里面进行获取。


:joy:

你这不是exhook :sleepy: exproto 和ex hook 在emq中功能不一样,虽然都使用了grpc

好的,谢谢。就是说如果使用4.3版本的emqx broker(开源)的exhook功能,不会有问题是吧

没啥问题的。你用最新的进行操作就可以。我前段时间也刚玩过的 :grinning_face_with_smiling_eyes:

我看你是想要订阅端获取发布端的IP吧,可以使用规则引擎。

是的,想要订阅端获取发布端的IP。有相关的demo源码么?你们的文档打不开,点击没有反应

你github网站可以访问吗?如果不行估计你网络的问题。链接里本身就是demo。你也可以使用规则引擎传递真实IP。sql中加入“peerhost” 就是可以获取的真实IP

github可以访问



如果我把鼠标挪到“HTTP API”上,可以看到链接,但是挪到“规则引擎”上,则无链接展示

如果通过规则引擎来获取发送端的ip,发送端不需要显示的主动把ip写到消息中吧?

你去做网页的就知道这是为啥没有连接了;不是每个都有链接,有链接的代表有单独的一个页面。我给你的链接都是可以正常打开的,是你的网络问题。

都是可以,办法很多。 :joy: