2015-11-02 299 views
0

我正在使用以下java代碼來打開數據。但我不知道我怎麼能爲Node.js寫同樣的東西? Java代碼如下所示:java到node.js代碼轉換

public void receiveEvent(String forTopic, MqttMessage event) 
     throws MqttException { 
    Object obj = null; 
    java.io.ByteArrayInputStream bstream = new java.io.ByteArrayInputStream(
      event.getPayload()); 
    try { 
     java.io.ObjectInputStream st = new java.io.ObjectInputStream(
       bstream); 
     obj = st.readObject(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    DataWrapper dt = (DataWrapper) obj; 
s.notifyReceived(forTopic, dt.getObject(), dt.getDevice()); 

代碼數據封裝如下圖所示:

public class DataWrapper implements Serializable { 
private static final long serialVersionUID = 1L; 
Device device; 
Object object; 
public void setDevice(Device deviceInfo) { 
    this.device = deviceInfo; 
} 
public void setObject(Object object) { 
    this.object = object; 
} 
public Device getDevice() { 
    return device; 
} 
public Object getObject() { 
    return object; 
} 

}

回答

2

你可能要考慮MQTT.js.它可在這裏NPM:https://www.npmjs.com/package/mqtt

對於一個完整的例子,我們需要知道更多一點關於你的設置和你想要做什麼......但在這裏是從MQTT複製的例子中,JS

var mqtt = require('mqtt'); 
var client = mqtt.connect('mqtt://test.mosquitto.org'); 

client.on('connect', function() { 
    client.subscribe('presence'); 
    client.publish('presence', 'Hello mqtt'); 
}); 

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

它可能非常接近你想要開始。

+0

@ Julian-我知道,但我是新的node.js這就是爲什麼問這樣的問題。我已經用java代碼做了。 – abc

+0

我們將需要比示例代碼更多的東西來真正幫助你..你的代碼所做的唯一事情就是在你調用「notifyReceived」之前,通過3種不同類型的流來轉換你接收到的事件的有效載荷,然後調用一個神祕的對象「s」。 – Julian

+0

@朱利安 - 你能請轉介我的下一篇文章? http://stackoverflow.com/questions/33429380/mqtt-communication-between-node-js-and-java – abc