import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
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.MqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.eclipse.paho.client.mqttv3.MqttTopic;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class TopClient extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel panel;
private JButton button;
private MqttClient client;
private String host = "tcp://192.168.21.202:1883";
// private String host = "tcp://localhost:1883";
/*private String userName = "dk";
private String passWord = "dk123";*/
private MqttTopic topic;
private MqttMessage message;
private String myTopic = "test/#";
private JTextField jf;
public TopClient() {
this.setTitle("top"+"==="+myTopic);
try {
client = new MqttClient(host, "top", new MemoryPersistence());
connect();
} catch (Exception e) {
e.printStackTrace();
}
Container container = this.getContentPane();
panel = new JPanel();
button = new JButton("subscribe the topic");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
try {
/*MqttDeliveryToken token = topic.publish(message);
token.waitForCompletion();
System.out.println(token.isComplete() + "========");*/
client.subscribe(myTopic,2);
} catch (Exception e) {
e.printStackTrace();
}
}
});
panel.add(button);
jf = new JTextField();
panel.add(jf);
jf.setText("ww33333333333333333");
container.add(panel, "North");
}
private void connect() {
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(false);
/*options.setUserName(userName);
options.setPassword(passWord.toCharArray());*/
// ���ó�ʱʱ��
options.setConnectionTimeout(10);
// ���ûỰ����ʱ��
options.setKeepAliveInterval(20);
try {
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
System.out.println("connectionLost-----------");
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("deliveryComplete---------"
+ token.isComplete());
}
@Override
public void messageArrived(String topic, MqttMessage arg1)
throws Exception {
System.out.println("messageArrived----------"+arg1.toString());
jf.setText(new String(arg1.toString().getBytes("GBK")));
}
});
//topic = client.getTopic(myTopic);
/*message = new MqttMessage();
message.setQos(1);
message.setRetained(false);
System.out.println(message.isRetained() + "------ratained״̬");
message.setPayload("��������������33".getBytes("UTF-8"));*/
client.connect(options);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
TopClient s = new TopClient();
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
s.setSize(600, 370);
s.setLocationRelativeTo(null);
s.setVisible(true);
}
}