Skip to content
Snippets Groups Projects
Commit efe4bf32 authored by ManosAngelidis's avatar ManosAngelidis
Browse files

[NRRPLT-8384-mqtt]

parent 716ba766
No related branches found
No related tags found
No related merge requests found
...@@ -15,11 +15,12 @@ export default class NrpCoreDashboard extends React.Component { ...@@ -15,11 +15,12 @@ export default class NrpCoreDashboard extends React.Component {
} }
onMqttClientConnected(mqttClient) { onMqttClientConnected(mqttClient) {
mqttClient.subscribe('#', (err) => { mqttClient.subscribeToTopic('test_topic');
if (err) { //mqttClient.subscribe('#', (err) => {
console.error(err); // if (err) {
} // console.error(err);
}); // }
//};
} }
render() { render() {
......
import mqtt from 'mqtt'; import mqtt from 'mqtt';
import { EventEmitter } from 'events'; import { EventEmitter } from 'events';
import * as proto from 'nrp-jsproto/nrp-engine_msgs-protobufjs'; //import * as proto from 'nrp-jsproto/nrp-engine_msgs-protobuf.js';
import { DataPackMessage } from '../../node_modules/nrp-jsproto/engine_grpc_pb.js';
import jspb from 'google-protobuf';
//import { hasSubscribers } from 'diagnostics_channel';
let _instance = null; let _instance = null;
const SINGLETON_ENFORCER = Symbol(); const SINGLETON_ENFORCER = Symbol();
...@@ -16,7 +19,9 @@ export default class MqttClientService extends EventEmitter { ...@@ -16,7 +19,9 @@ export default class MqttClientService extends EventEmitter {
throw new Error('Use ' + this.constructor.name + '.instance'); throw new Error('Use ' + this.constructor.name + '.instance');
} }
console.info(proto); this.subTokensMap = new Map();
console.info(DataPackMessage);
} }
static get instance() { static get instance() {
...@@ -62,6 +67,39 @@ export default class MqttClientService extends EventEmitter { ...@@ -62,6 +67,39 @@ export default class MqttClientService extends EventEmitter {
console.error(error); console.error(error);
} }
} }
subscribeToTopic(topic, callback=Function()){
const token = {
topic: topic,
callback: callback
};
if (this.subTokensMap.has(token.topic)){
this.subTokensMap.set(
token.topic,
[this.subTokensMap.get(token.topic), token]
);
}
else{
this.subTokensMap.set(
token.topic,
token
);
}
console.info('You have been subscribed to topic ' + topic);
return token;
}
static getProtoOneofData(protoMsg, oneofCaseNumber) {
return jspb.Message.getField(protoMsg, oneofCaseNumber);
}
static getDataPackMessageOneofCaseString(protoMsg) {
for (let dataCase in DataPackMessage.DataCase) {
if (DataPackMessage.DataCase[dataCase] === protoMsg.getDataCase()) {
return dataCase;
}
}
}
} }
MqttClientService.EVENTS = Object.freeze({ MqttClientService.EVENTS = Object.freeze({
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment