octoblu / meshblu

Meshblu is a cross-protocol IoT machine-to-machine messaging system.
https://meshblu.readme.io/
MIT License
816 stars 181 forks source link

Cross-protocol send/Receive messages #129

Open anhldbk opened 8 years ago

anhldbk commented 8 years ago

(This issue is somewhat related to issue #128 )

I want to make 2 devices talk to each other via different protocols. To connect to Meshblu, I have:

Device A - Publisher

A uses WebSocket to connect to Meshblu, publishing broadcast messages periodically:

var meshblu = require('meshblu');
var config = {
    "uuid": "e5102de3-737b-4952-9fd5-e9ddfa953c97",
    "token": "2b6d92b6c4a6d51f9a82465d4260113d5f93f551",
    "hostname": "meshblu.octoblu.com",
    "port": 9630
}
var conn = meshblu.createConnection(config);

conn.on('ready', function(data){
    setInterval(function(){
        console.log("sending message");
        conn.message({
            "devices": "*",
            "payload": {
                "hello":"world"
            }
        });
    },300);
});

A is already configured to allow any device receiving its broadcast messages:

"receiveWhitelist": [
        "*"
],

Device B - Subscriber

B uses MQTT , subscribing to A to receive messages

var Meshblu = require('meshblu-mqtt');
var config = {
    "uuid": "9f9366a5-c738-4a59-b681-a8964c0b4d7f",
    "token": "933093e4c2fc1522b49568e45a4cb80e316b7a68",
    "hostname": "meshblu.octoblu.com",
    "port": 1883
}

var conn = new Meshblu(config);
conn.connect(function(response){
    console.log('------------------------');
    console.log(response);
    console.log('------------------------');

    // subscribe to A
    conn.subscribe("e5102de3-737b-4952-9fd5-e9ddfa953c97", function(data){
        console.log(data)
    });

    conn.on('message', function(data){
        console.log('message received');
        console.log(data);
    });
})

The problem B can't receive any message from A