一个知道服务器地址就能连接,并publish和subscribe的broker不是好的broker。这样对于物联网通信安全有很大的威胁,所以身份验证是一个必须要做的工作,也是其中一部分工作。根据不同的需求,可以根据连接到broker的用户名和密码进行publish和subscribe权限控制。
推荐一个比较好的文章,文章里面的工作我还没有做,但是很有启发。(https://auth0.com/docs/scenarios/mqtt#components-of-the-solutionss)
本文中连接者的身份验证是通过查找mysql数据库进行比对,再决定是否允许连接broker。
先贴出来node.js的服务器源码:
/**
* Created by niyl on 2016/1/13.
*/
var conMySql = require('./con_mysql');
var mosca = require('mosca');
var MqttServer = new mosca.Server({
port: 1883
});
/**
* 验证方法
*
**/
var authenticate = function(client, username, password, callback) {
var auth = new conMySql();
var authorized = auth.isPassed(use