Add topic publishing sidebar
This commit is contained in:
@@ -7,6 +7,7 @@ interface DataSource<DataSourceOptions> {
|
||||
connect(options: DataSourceOptions): DataSourceStateMachine
|
||||
disconnect(): void
|
||||
onMessage(messageCallback: MessageCallback): void
|
||||
publish(topic: string, payload: any): void
|
||||
topicSeparator: string
|
||||
stateMachine: DataSourceStateMachine
|
||||
}
|
||||
|
||||
@@ -69,6 +69,10 @@ export class MqttSource implements DataSource<MqttOptions> {
|
||||
return this.stateMachine
|
||||
}
|
||||
|
||||
public publish(topic: string, payload: any) {
|
||||
this.client && this.client.publish(topic, payload)
|
||||
}
|
||||
|
||||
public disconnect() {
|
||||
this.client && this.client.end()
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import {
|
||||
addMqttConnectionEvent, backendEvents,
|
||||
makeConnectionStateEvent, removeConnection,
|
||||
makeConnectionMessageEvent, AddMqttConnection,
|
||||
makeConnectionMessageEvent, makePublishEvent, AddMqttConnection, Message,
|
||||
} from '../../events'
|
||||
import { MqttSource, DataSource } from './DataSource'
|
||||
|
||||
@@ -26,6 +26,9 @@ class ConnectionManager {
|
||||
|
||||
connection.connect(options)
|
||||
this.handleNewMessagesForConnection(connectionId, connection)
|
||||
backendEvents.subscribe(makePublishEvent(connectionId), (msg: Message) => {
|
||||
this.connections[connectionId].publish(msg.topic, msg.payload)
|
||||
})
|
||||
}
|
||||
|
||||
private handleNewMessagesForConnection(connectionId: string, connection: MqttSource) {
|
||||
|
||||
Reference in New Issue
Block a user