EMQ进行HttpApi登录问题】的更多相关文章

今天进行EMQ http api调用的时候遇到一个问题,一直弹出登录验证框 在官网资料中也找不到相关的接口,如下图: 以前也经常看到这种登录,不过我这里没有用程序去调用过这样类似的接口. 后来我想到经常在用迅雷下载一些电影的时候,在迅雷地址中看到过一种ftp的写法,如: ftp:账号:密码@xxx.com/xyz.mp4如此如此. 我就尝试了一下账号密码登录,居然成功了. 这样一来我百度的范围就缩小了,找到了一个关键词 -----> HTTP Authorization 原来是这玩意搞的鬼 记录…
我这里的网络请求是用的装饰者模式去写的,什么是装饰者模式呢?在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.我的理解就是一个接口,两个实现类,一个实现类负责调用接口的方法,另一个类负责功能的具体实现.本文中所提到的代码都是伪代码,最后会给出完整的,最初版本的项目框架.不包含任何业务逻辑   项目结构.png   容我一个一个来说,首先,我们一般请求网络的时候,会有统一的返回数据格式,一个是需要判断返回code码的,就比方说登录…
MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿名认证(anonymous),通过加载认证插件可开启的多个认证模块组成认证链: ---------------- ---------------- ------------ Client --> | Username认证 | -ignore-> | ClientID认证 | -ignore-> | 匿名认证 | ---------------…
要求 后台提供的接口,不能让人随便输入个链接就能访问,而是要加入一个token,token是动态的,每次访问的时候判断,有权限并且未过期的时候才可以访问接口. 后台的设计是 在登录的时候,首先要post提交一个请求,根据用户名密码,返回一个动态token,这个token会在服务器保存一段时间.在前端的其他接口请求的时候,都要在header中添加这个token,后台会进行验证.只有验证成功,才会返回对应的接口内容,否则会抛出401异常. 请求效果 首先使用postman查看正常请求的效果 第一次登…
1. 了解 物联网最基础的就是通信了.通信协议,物联网协议好像有那么几个,以前各个协议都有优劣,最近一段时间,好像各大厂商都采用MQTT协议,所以我也不例外,不搞特殊,采用MQTT协议,选定了协议,接下来就是选一个MQTT服务器(Broker),项目初期肯定是使用开源的解决方案会好一点,一方面是有人为之填坑,一方面可以快速搭建原型.等以后有人.有资源.有用户,在自己定制开发一套系统.基于各种考虑(更多的是领导的要求)选择了国人开发的MQTTBroker EMQ框架 (http://emqtt.c…
1. 前言 EMQTT属于一个比较小众的开源软件,很多资料不全,很麻烦,很多功能都是靠猜测,还有就是看官方提供的那几个插件,了解. 2. 说明 上一小节的插件 emq_plugin_wunaozai 文件 emq_plugin_wunaozai.erl 这个文件就是Hook钩子设计了,里面默认已经有了.比如在 on_client_connected这个函数下增加一行 io:format()打印,那么,对应每个mqtt客户端连接到服务器都会打印这一行.一开始我还以为验证逻辑写在这里,然后通过判断,…
1  配置用户名 默认是可以匿名登录(与mosquitto相同) ## Allow Anonymous authentication mqtt.allow_anonymous = true etc/plugins/emq_auth_username.conf 中配置默认用户: auth.user.$N.username = admin auth.user.$N.password = public 启用 emq_auth_username 插件: ./bin/emqttd_ctl plugins…
Erlang进程消耗EMQ对客户端链接使用链接进程(emqtt_client)和session进程(emqtt_session)分开的策略. 当一个mqtt的客户端连接到EMQ的服务器上的时候,首先会建立一个负责管理连接的进程(emqtt_client),当验证客户端有效后会建立另一个进程(emqtt_session),负责该客户端的会话. 在EMQ中,每一个clientID只能登录一次,因此后登录的客户端会将先登录的客户端踢下线. 主要内存消耗(一个connection大约占10K内存)数据表…
emq 的用户密码认证 MQTT 认证设置 EMQ 消息服务器认证由一系列认证插件(Plugin)提供,系统支持按用户名密码.ClientID 或匿名认证. 系统默认开启匿名认证(anonymous),通过加载认证插件可开启的多个认证模块组成认证链: ---------------- ---------------- ------------ Client --> | Username认证 | -ignore-> | ClientID认证 | -ignore-> | 匿名认证 | ---…
若想远端访问控制台,需打开对于端口 TCP 服务端口占用 EMQ 2.0 消息服务器默认占用的 TCP 端口包括: 1883 MQTT 协议端口 8883 MQTT/SSL 端口 8083 MQTT/WebSocket 端口 8080 HTTP API 端口 18083 Dashboard 管理控制台端口 EMQ 2.0 占用的上述端口,可通过 etc/emq.conf 配置文件的 ‘listener’ 段落设置: ## TCP Listener: 1883, 127.0.0.1:1883, :…