mqtt的介绍就不多啰嗦了,直接进入主题。
- ubuntu安装
apt-get install mosquitto
- 用户及密码的配置
首先创建用户密码文件/etc/mosquitto/pwfile,然后修改配置文件,博主使用的版本是version 1.4.8,可在/etc/mosquitto/conf.d目录下创建自己的配置文件,创建/etc/mosquitto/conf.d/mqtt.conf配置文件,增加
allow_anonymous false
password_file /etc/mosquitto/pwfile
然后增加用户密码
mosquitto_passwd -b /etc/mosquitto/pwfile 用户名 密码
重启mosquitto服务即可。
- 动态加载配置文件,即修改了配置文件,不用重启也能生效。通过mosquitto的源码src/mosquitto.c发现
#ifdef SIGHUP
/* Signal handler for SIGHUP - flag a config reload. */
void handle_sighup(int signal)
{
flag_reload = true;
}
#endif
#ifdef SIGHUP
signal(SIGHUP, handle_sighup);
#endif
在loop.c文件中,重新加载配置文件,其代码如下:
if(flag_reload){
_mosquitto_log_printf(NULL, MOSQ_LOG_INFO, "Reloading config.");
mqtt3_config_read(db->config, true);
mosquitto_security_cleanup(db, true);
mosquitto_security_init(db, true);
mosquitto_security_apply(db);
mqtt3_log_close(db->config);
mqtt3_log_init(db->config);
flag_reload = false;
}
因此通过
kill -SIGHUP pid(mosquitto的进程号)
重新加载相关的配置文件