moscajs / mosca

MQTT broker as a module
mosca.io
3.2k stars 513 forks source link

Not able to send message from server to client #748

Open bnayak0225 opened 6 years ago

bnayak0225 commented 6 years ago

server `var mosca = require('mosca') // // var ascoltatore = { // //using ascoltatore // type: 'mongo', // url: 'mongodb://localhost:27017/mqtt', // pubsubCollection: 'ascoltatori', // mongo: {} // };

var moscaSettings = { port: 1883, // backend: ascoltatore, // persistence: { // factory: mosca.persistence.Mongo, // url: 'mongodb://localhost:27017/mqtt' // } };

var server = new mosca.Server(moscaSettings); server.on('ready', setup);

var message = { topic: 'test', payload: 'abcde', // or a Buffer qos: 1, // 0, 1, or 2 retain: false // or true };

server.publish(message, function() { console.log('done!'); }); // fired when a message is received server.on('published', function(packet, client) { console.log('Published', packet.payload); });

// fired when the mqtt server is ready function setup() { //console.log('Mosca server is up and running') }`

client

`var mqtt = require('mqtt') var client = mqtt.connect('mqtt://localhost:1883')

client.on('connect', function () { client.subscribe('test') client.publish('test', 'Hello mqtt sdfdsf') })

client.on('message', function (topic, message) { // message is Buffer console.log(message.toString()) })`

I don't know what wrong i am doing. I am not receiving abcd inside client terminal

jack0320 commented 5 years ago

It's timing issue, server.publish(message... should be called after the mqtt client finished subscribe 'test'