import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
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.MqttToken;
import org.eclipse.paho.client.mqttv3.MqttTopic;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class PublishServer 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 = "admin";
//private String passWord = "admin";
private MqttTopic topic;
private MqttMessage message;
private String myTopic = "test/c/w";
private String myTopic2 = "test/w";
private JTextField jtopic ;
private JTextField jmessage ;
public PublishServer() {
this.setTitle("server"+"==="+myTopic);
try {
client = new MqttClient(host, "Server", new MemoryPersistence());
connect();
} catch (Exception e) {
e.printStackTrace();
}
Container container = this.getContentPane();
//panel = new JPanel();
button = new JButton("click me to send a heartbeat.. see the console print log..");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
try {
/*MqttDeliveryToken token = topic.publish(message);
token.waitForCompletion();
System.out.println(token.isComplete() + "========");*/
/* myTopic =jtopic.getText();
message = new MqttMessage();
message.setQos(1);
message.setRetained(false);
message.setPayload(jmessage.getText().getBytes("GBK"));
client.publish(myTopic, message);
MqttToken tt =new MqttToken();*/
client.nnnn();
} catch (Exception e) {
e.printStackTrace();
}
}
});
container.setLayout(new FlowLayout());
jtopic = new JTextField(50);
jmessage = new JTextField(50);
container.add(button);
/*container.add(jtopic);
container.add(jmessage);*/
}
private void connect() {
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(false);
//options.setUserName(userName);
//options.setPassword(passWord.toCharArray());
// ���ó�ʱʱ��
options.setConnectionTimeout(10);
// ���ûỰ����ʱ��
options.setKeepAliveInterval(4);
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----------");
}
});
/*topic = client.getTopic(myTopic);
message = new MqttMessage();
message.setQos(1);
message.setRetained(false);
System.out.println(message.isRetained() + "------ratained״̬");
message.setPayload("who 33".getBytes("UTF-8"));*/
client.connect(options);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
PublishServer s = new PublishServer();
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
s.setSize(600, 370);
s.setLocationRelativeTo(null);
s.setVisible(true);
}
}