//Exam3.src.com.ds.ex.MpttClass.java
package com.ds.ex;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class MqttClass implements MqttCallback{
private MqttClient client = null;
public MqttClass(){ //서버에 접속
new Thread(task1).start();
}
private MyEventListner listener = null;
private MemoryPersistence persistence = new MemoryPersistence();
Runnable task1 = new Runnable(){
@Override
public void run() {
try {
//new MqttClient()
client = new MqttClient("tcp://211.110.165.201:1883", "h78786565", persistence);
MqttConnectOptions connopt = new MqttConnectOptions();
connopt.setCleanSession(true);
client.connect(connopt);
client.setCallback(MqttClass.this);
client.subscribe("class603/#", 0);
new MyFrame(MqttClass.this);
} catch (MqttException e) {
System.out.println("ERR0"+e.getStackTrace());
}
}
};
public void sendMessage(String payload){
MqttMessage message = new MqttMessage();
message.setPayload(payload.getBytes()); //String -> byte[]
//message.setQos(0);
try {
if(client.isConnected()){
client.publish("class603/hss1", message);
}
} catch (MqttException e) {
System.out.println("ERR1-"+e.getStackTrace());//+e.getMessage());
}
}
@Override
public void connectionLost(Throwable arg0) {
try {
System.out.println("disconect");
client.close();
} catch (MqttException e) {
System.out.println("ERR"+e.getMessage());
}
}
@Override
public void deliveryComplete(IMqttDeliveryToken arg0) {
}
public void setMyEventListner(MyEventListner listener){
this.listener = listener;
}
@Override
public void messageArrived(String arg0, MqttMessage arg1) throws Exception {
System.out.println(arg0+","+arg1);
listener.recvMsg(arg0, arg1);
}
}