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 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 CopyOfServer extends JFrame { private static final long serialVersionUID = 1L; private JPanel panel; private JButton button; private MqttClient client; private String host = "tcp://127.0.0.1:1883"; // private String host = "tcp://localhost:1883"; private String userName = "top"; private String passWord = "top"; private MqttTopic topic; private MqttMessage message; private String myTopic = "mytesttopic"; private String myTopic2 = "test/w"; public CopyOfServer() { try { client = new MqttClient(host, "Server", new MemoryPersistence()); connect(); } catch (Exception e) { e.printStackTrace(); } Container container = this.getContentPane(); panel = new JPanel(); button = new JButton("publish 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.publish(myTopic, message); } catch (Exception e) { e.printStackTrace(); } } }); panel.add(button); 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----------"); } }); topic = client.getTopic(myTopic); message = new MqttMessage(); message.setQos(1); message.setRetained(false); System.out.println(message.isRetained() + "------ratained״̬"); message.setPayload("who33".getBytes("UTF-8")); client.connect(options); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { CopyOfServer s = new CopyOfServer(); s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); s.setSize(600, 370); s.setLocationRelativeTo(null); s.setVisible(true); } }