使用 Mqtt 订阅者与 main class 通信
Communicate to main class using Mqtt subscriber
我有一个 main class 在另一个线程中启动一个 mqtt 订阅者(基本上是一个监听消息到达的服务)。当该订阅者收到该消息时,我需要将其转发到我的主 class 以便它可以对该消息进行计算。
在订阅者中,我有一个 messageArrived 函数。我不确定如何将该消息传达给我的主要 class。我在想也许是某种网络,比如从订阅者发送一个套接字到监听的主class。但想考虑其他建议。所有这些都在同一台机器上完成。
订阅者的片段在主线程的另一个线程中旋转 class:
@Override
public void messageArrived(String topic, MqttMessage message) throws MqttException{
//send message to main class somehow...
}
需要来自上述代码的消息的主要 class:
new Thread(optSubscriber).start(); //spin up subscriber service to listen for messages aka messageArrived
//somehow grab that message from messageArrived and place into next function
computeMessageFromSubscriber(message);
将消息对象推送到一个集合(例如 Vector),然后从处理线程轮询该集合。
另外,与其在预定的单线程上进行工作,不如看看 java.util 线程池模型,它以一种可扩展的方式封装了这种模式
https://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html
我有一个 main class 在另一个线程中启动一个 mqtt 订阅者(基本上是一个监听消息到达的服务)。当该订阅者收到该消息时,我需要将其转发到我的主 class 以便它可以对该消息进行计算。
在订阅者中,我有一个 messageArrived 函数。我不确定如何将该消息传达给我的主要 class。我在想也许是某种网络,比如从订阅者发送一个套接字到监听的主class。但想考虑其他建议。所有这些都在同一台机器上完成。
订阅者的片段在主线程的另一个线程中旋转 class:
@Override
public void messageArrived(String topic, MqttMessage message) throws MqttException{
//send message to main class somehow...
}
需要来自上述代码的消息的主要 class:
new Thread(optSubscriber).start(); //spin up subscriber service to listen for messages aka messageArrived
//somehow grab that message from messageArrived and place into next function
computeMessageFromSubscriber(message);
将消息对象推送到一个集合(例如 Vector),然后从处理线程轮询该集合。
另外,与其在预定的单线程上进行工作,不如看看 java.util 线程池模型,它以一种可扩展的方式封装了这种模式
https://docs.oracle.com/javase/tutorial/essential/concurrency/pools.html