/**
* Created by niyl on 2016/1/13.
*/
var mosca = require( ‘mosca‘ );
var MqttServer = new mosca.Server({
port: 8000
});
/**
* 验证方法
*
**/
var authenticate = function(client, username, password, callback) {
//var authorized = (username.toString() === ‘18FE34F48379-DC‘ && password.toString() === ‘666666‘);
var authorized = (password.toString() === ‘666666‘ );
if (authorized){
//存储设备类型
client.type = username.toString().split( ‘-‘ )[ 1 ];
}
callback( null , authorized);
}
//
MqttServer.on( ‘clientConnected‘ , function(client){
console.log( ‘client connected‘ , client.id);
});
/**
* 监听MQTT主题消息
**/
MqttServer.on( ‘published‘ , function(packet, client) {
var topic = packet.topic;
// console.log(‘message-arrived--->‘,‘topic =‘+topic+‘,message = ‘+ packet.payload.toString());
switch (topic){
case ‘pubMsg‘ :
console.log( ‘message-publish‘ , packet.payload.toString());
//MQTT转发主题消息
MqttServer.publish({topic: ‘other‘ , payload: ‘hello‘ });
//发送消息NODEJS
console.log( ‘HD: ‘ );
//发送socket.io消息
//io.sockets.socket(YHSocketMap.get(‘1000‘)).emit(‘subState‘, packet);
break ;
case ‘other‘ :
console.log( ‘message-123‘ , packet.payload.toString());
break ;
case ‘order‘ :
console.log( ‘order‘ , packet.payload.toString());
break ;
case ‘test‘ :
console.log( ‘test‘ , packet.payload.toString());
break ;
}
});
MqttServer.on( ‘ready‘ , function(){
console.log( ‘mqtt is running...‘ );
//MqttServer.authenticate = authenticate;
});
|