Для создания курсового проекта был использован язык программирования Java. Для создания графического пользовательского интерфейса (GUI) была использована библиотека Swing.
Программа состоит из трёх классов: MainClass, AreaOfSubscribe, AreaOfPublish. Каждый класс отвечает за отдельную часть GUI. Главный класс также содержит методы для обмена сообщениями по протоколу MQTT и связи с брокером.
Примеры методов связи с брокером:
- на примере метода подключения клиента к брокеру:
public void Connection(String address, boolean flag) throws MqttException
{
if ((this.newClient != null) &&
(!address.equals(this.newClient.getConnection())))
{
this.newClient.terminate();
this.newClient = null;
}
if (this.newClient == null)
{
this.newClient = MqttClient.createMqttClient(address, null);
this.newClient.registerSimpleHandler(this);
}
this.newClient.setRetry(10);
String str1 = this.id.getText();
if (isLWTTopicSet())
{
this.newClient.connect(str1, this.cleanSessionSelected, (short)this.liveClients, this.topic, this.QoS, this.data, this.RetainSelected);
}
else
{
this.newClient.connect(str1, this.cleanSessionSelected, (short)this.liveClients);
}
}
- на примере метода потери соединения:
public void connectionLost()
throws Exception
{
int i = -1;
JOptionPane.showMessageDialog(null, "Соединение потеряно!... Передподключение", "WARNING", JOptionPane.PLAIN_MESSAGE);
try
{
while ((i == -1) && (this.connected))
{
try
{
synchronized (this.WaitObject)
{
this.WaitObject.wait(5000L);
}
}
catch (InterruptedException localInterruptedException) {}
synchronized (this)
{
if (this.connected) {
try
{
Connection(this.newClient.getConnection(), this.newClient.getPersistence() != null);
i = 0;
}
catch (MqttException localMqttException)
{
i = -1;
}
}
}
}
}
catch (Exception localException)
{
JOptionPane.showMessageDialog(null, "Соединение потеряно!", "ERROR", JOptionPane.PLAIN_MESSAGE);
Disconnection();
throw localException;
}
if (this.connected) {
ConnectButtons(true);
} else {
ConnectButtons(false);
}
}
Задачей данной курсовой работы – создание графического интерфейса для отправки текстовых сообщений под протоколом MQTT.
Проведём анализ выполнения программы.
После включения программы, если клиент не подключён к серверу или введены неправильно данные о клиенте программа выдаст предупреждение об ошибке. Результат на рисунке 8.1-8.2
Рис. 8.1 Сообщение об ошибке при подключении к брокеру в случае его отсутствия
Рис. 8.2 Сообщение об ошибке в случае неправильно введённых данных
Так же на рисунках видно, что нажатие кнопок Публикация, Подписка, Отписка и Отключение до подключения к серверу неактивны.
Подключаясь к брокеру, пользователь может подписаться на сообщения произвольной темы, а также опубликовать сообщение произвольной темы, что видно на рисунке 8.3
Рис. 8.3 Подписка на определённую тему и публикация сообщения данной темы
После нажатие кнопки Отключение происходит отключение от сервера. Также все остальные кнопки переходят в неактивный режим, что является ещё одной защитой для удобной и безопасной работы пользователя. Результат представлен на рисунке 8.4
Рис. 8.4 Отключение от сервера
Дата | Выполнено, % |
---|---|
2020-05-21 20:03:25 | 10 |
2020-05-14 13:24:06 | 70 |
2020-05-14 14:21:43 | 100 |