You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2026-05-16 09:38:28 +02:00
Доработка тестов ZMQ
This commit is contained in:
@@ -8321,6 +8321,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Проверка_ZeroMQ_ОбработатьЗапрос(Знач Результат, Знач Вариант, Сообщение = "")
|
||||
|
||||
ОжидаетЧто(Результат["result"]).Равно(Истина);
|
||||
Данные = ПолучитьСтрокуИзДвоичныхДанных(Результат["data"]);
|
||||
ОжидаетЧто(Данные).Равно(Сообщение);
|
||||
Результат["data"] = "<ДвоичныеДанные>";
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Проверка_ZeroMQ_Подписаться(Знач Результат, Знач Вариант, Сообщение = "")
|
||||
|
||||
Если Вариант = "ЧужаяТема" Тогда
|
||||
@@ -8351,7 +8362,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Проверка_ZeroMQ_ЭтоОбъектКлиента(Знач Результат, Знач Вариант)
|
||||
Функция Проверка_ZeroMQ_ЭтоОбъектКоннектора(Знач Результат, Знач Вариант)
|
||||
|
||||
Если Вариант = "Ложь" Тогда
|
||||
ОжидаетЧто(Результат).Равно(Ложь);
|
||||
|
||||
+194
-114
@@ -95,8 +95,6 @@
|
||||
Процедура ZMQ_МетодыПодключения() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("ZeroMQ_Address", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("ZeroMQ_Port" , ПараметрыТеста);
|
||||
|
||||
ZeroMQ_СоздатьСоединениеReq(ПараметрыТеста);
|
||||
ZeroMQ_СоздатьСоединениеSub(ПараметрыТеста);
|
||||
@@ -108,7 +106,6 @@
|
||||
Процедура ZMQ_МетодыПрослушивания() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("ZeroMQ_Port", ПараметрыТеста);
|
||||
|
||||
ZeroMQ_ОткрытьПортRep(ПараметрыТеста);
|
||||
ZeroMQ_ОткрытьПортPub(ПараметрыТеста);
|
||||
@@ -120,11 +117,10 @@
|
||||
Процедура ZMQ_МетодыВзаимодействия() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("ZeroMQ_Address", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("ZeroMQ_Port" , ПараметрыТеста);
|
||||
|
||||
ZeroMQ_ОтправитьДанные(ПараметрыТеста);
|
||||
ZeroMQ_ПолучитьДанные(ПараметрыТеста);
|
||||
ZeroMQ_ОбработатьЗапрос(ПараметрыТеста);
|
||||
ZeroMQ_Подписаться(ПараметрыТеста);
|
||||
ZeroMQ_ЗакрытьСоединение(ПараметрыТеста);
|
||||
ZeroMQ_ЭтоОбъектКоннектора(ПараметрыТеста);
|
||||
@@ -201,7 +197,7 @@
|
||||
|
||||
OPI_Инструменты.Пауза(1);
|
||||
|
||||
Сообщение = СтрШаблон("ZMQ_C_SUB_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Сообщение = СтрШаблон("topic.ZMQ_C_SUB_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(ОбъектСервера, Данные, 3000);
|
||||
@@ -278,7 +274,7 @@
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "СоздатьСоединениеPull");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Проверка, "ZeroMQ", "СоздатьСоединениеPull", "Проверка", Сообщение);
|
||||
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Сервер);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -319,178 +315,256 @@
|
||||
|
||||
Процедура ZeroMQ_ОткрытьПортPub(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 5;
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
Результат = OPI_ZeroMQ.ОткрытьПортPub(Порт);
|
||||
Клиент = OPI_ZeroMQ.СоздатьСоединениеSub(Адрес); // SKIP
|
||||
Подписка = OPI_ZeroMQ.Подписаться(Клиент, "topic."); // SKIP
|
||||
OPI_Инструменты.Пауза(1); // SKIP
|
||||
Сообщение = "topic.ZMQ_B_PUB_" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(Результат, Данные, 3000); // SKIP
|
||||
Проверка = OPI_ZeroMQ.ПолучитьДанные(Клиент, 3000); // SKIP
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортPub(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// Клиент
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
ОбъектКлиента = OPI_ZeroMQ.СоздатьСоединениеSub(Адрес);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
OPI_ZeroMQ.Подписаться(ОбъектКлиента, "topic.");
|
||||
|
||||
// END
|
||||
|
||||
OPI_Инструменты.Пауза(1);
|
||||
|
||||
Сообщение = СтрШаблон("topic.ZMQ_B_PUB_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(ОбъектСервера, Данные, 3000);
|
||||
Проверка = OPI_ZeroMQ.ПолучитьДанные(ОбъектКлиента, 3000);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ОткрытьПортPub");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(ОбъектСервера, "ZeroMQ", "ОткрытьПортPub");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Проверка, "ZeroMQ", "ОткрытьПортPub", "Проверка", Сообщение);
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Клиент) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Клиент);
|
||||
КонецЕсли;
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Результат) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Результат);
|
||||
КонецЕсли;
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектКлиента);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ZeroMQ_ОткрытьПортPush(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 6;
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
Результат = OPI_ZeroMQ.ОткрытьПортPush(Порт);
|
||||
Клиент = OPI_ZeroMQ.СоздатьСоединениеPull(Адрес); // SKIP
|
||||
Сообщение = "ZMQ_B_PUSH_" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортPush(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// Клиент
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
ОбъектКлиента = OPI_ZeroMQ.СоздатьСоединениеPull(Адрес);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = СтрШаблон("ZMQ_B_PUSH_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(Результат, Данные, 3000); // SKIP
|
||||
Проверка = OPI_ZeroMQ.ПолучитьДанные(Клиент, 3000); // SKIP
|
||||
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(ОбъектСервера, Данные, 3000);
|
||||
Проверка = OPI_ZeroMQ.ПолучитьДанные(ОбъектКлиента, 3000);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ОткрытьПортPush");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(ОбъектСервера, "ZeroMQ", "ОткрытьПортPush");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Проверка, "ZeroMQ", "ОткрытьПортPush", "Проверка", Сообщение);
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Клиент) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Клиент);
|
||||
КонецЕсли;
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Результат) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Результат);
|
||||
КонецЕсли;
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектКлиента);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ZeroMQ_ОткрытьПортPull(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 7;
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
Результат = OPI_ZeroMQ.ОткрытьПортPull(Порт);
|
||||
Клиент = OPI_ZeroMQ.СоздатьСоединениеPush(Адрес); // SKIP
|
||||
Сообщение = "ZMQ_B_PULL_" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортPull(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// Клиент
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
ОбъектКлиента = OPI_ZeroMQ.СоздатьСоединениеPush(Адрес);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = СтрШаблон("ZMQ_B_PULL_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(Клиент, Данные, 3000); // SKIP
|
||||
Проверка = OPI_ZeroMQ.ПолучитьДанные(Результат, 3000); // SKIP
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(ОбъектКлиента, Данные, 3000); // SKIP
|
||||
Проверка = OPI_ZeroMQ.ПолучитьДанные(ОбъектСервера, 3000); // SKIP
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ОткрытьПортPull");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(ОбъектСервера, "ZeroMQ", "ОткрытьПортPull");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Проверка, "ZeroMQ", "ОткрытьПортPull", "Проверка", Сообщение);
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Клиент) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Клиент);
|
||||
КонецЕсли;
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Результат) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Результат);
|
||||
КонецЕсли;
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектКлиента);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ZeroMQ_ОтправитьДанные(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 8;
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
Сервер = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
Клиент = OPI_ZeroMQ.СоздатьСоединениеReq(Адрес);
|
||||
Сообщение = "ZMQ_SEND_" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// Клиент
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
ОбъектКлиента = OPI_ZeroMQ.СоздатьСоединениеReq(Адрес);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = СтрШаблон("ZMQ_SEND_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(Сервер) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Сервер);
|
||||
КонецЕсли;
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(Клиент) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Клиент);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = OPI_ZeroMQ.ОтправитьДанные(Клиент, Данные, 3000);
|
||||
Прием = OPI_ZeroMQ.ПолучитьДанные(Сервер, 3000); // SKIP
|
||||
Результат = OPI_ZeroMQ.ОтправитьДанные(ОбъектКлиента, Данные, 3000);
|
||||
Прием = OPI_ZeroMQ.ПолучитьДанные(ОбъектСервера, 3000); // SKIP
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ОтправитьДанные");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Прием, "ZeroMQ", "ОтправитьДанные", "Проверка", Сообщение);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Клиент);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Сервер);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектКлиента);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ZeroMQ_ОбработатьЗапрос(ПараметрыФункции)
|
||||
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// Клиент
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
ОбъектКлиента = OPI_ZeroMQ.СоздатьСоединениеReq(Адрес);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
Запрос = СтрШаблон("ZMQ_REQ_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
ДанныеReq = ПолучитьДвоичныеДанныеИзСтроки(Запрос);
|
||||
Результат = OPI_ZeroMQ.ОбработатьЗапрос(ОбъектКлиента, ДанныеReq, 3000, 3000);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ОбработатьЗапрос", "Ответ", Запрос);
|
||||
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектКлиента);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ZeroMQ_ПолучитьДанные(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 9;
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
Сервер = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
Клиент = OPI_ZeroMQ.СоздатьСоединениеReq(Адрес);
|
||||
Сообщение = "ZMQ_RECV_" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// Клиент
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
ОбъектКлиента = OPI_ZeroMQ.СоздатьСоединениеReq(Адрес);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
Сообщение = СтрШаблон("ZMQ_RECV_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(Сервер) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Сервер);
|
||||
КонецЕсли;
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(Клиент) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Клиент);
|
||||
КонецЕсли;
|
||||
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(Клиент, Данные, 3000); // SKIP
|
||||
Результат = OPI_ZeroMQ.ПолучитьДанные(Сервер, 3000);
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(ОбъектКлиента, Данные, 3000); // SKIP
|
||||
Результат = OPI_ZeroMQ.ПолучитьДанные(ОбъектСервера, 3000);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ПолучитьДанные", , Сообщение);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Клиент);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Сервер);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектКлиента);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ZeroMQ_Подписаться(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 10;
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
Паблишер = OPI_ZeroMQ.ОткрытьПортPub(Порт);
|
||||
Подписчик = OPI_ZeroMQ.СоздатьСоединениеSub(Адрес);
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортPub(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// Клиент
|
||||
Адрес = СтрШаблон("tcp://127.0.0.1:%1", Порт);
|
||||
ОбъектКлиента = OPI_ZeroMQ.СоздатьСоединениеSub(Адрес);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектКлиента) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектКлиента);
|
||||
КонецЕсли;
|
||||
|
||||
Префикс = "topic.";
|
||||
Сообщение = Префикс + "ZeroMQ_SUB_" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss");
|
||||
Сообщение = СтрШаблон("%1ZeroMQ_SUB_%2", Префикс, Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"));
|
||||
Данные = ПолучитьДвоичныеДанныеИзСтроки(Сообщение);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(Паблишер) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Паблишер);
|
||||
КонецЕсли;
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(Подписчик) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(Подписчик);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = OPI_ZeroMQ.Подписаться(Подписчик, Префикс);
|
||||
Результат = OPI_ZeroMQ.Подписаться(ОбъектКлиента, Префикс);
|
||||
OPI_Инструменты.Пауза(1); // SKIP
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(Паблишер, Данные, 3000); // SKIP
|
||||
Прием = OPI_ZeroMQ.ПолучитьДанные(Подписчик, 3000); // SKIP
|
||||
ЧужоеСообщение = "other.ZMQ_SUB_" + Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss"); // SKIP
|
||||
Отправка = OPI_ZeroMQ.ОтправитьДанные(ОбъектСервера, Данные, 3000); // SKIP
|
||||
Прием = OPI_ZeroMQ.ПолучитьДанные(ОбъектКлиента, 3000); // SKIP
|
||||
ЧужоеСообщение = СтрШаблон("other.ZMQ_SUB_%1", Формат(ТекущаяДата(), "ДФ=yyyyMMddhhmmss")); // SKIP
|
||||
ЧужиеДанные = ПолучитьДвоичныеДанныеИзСтроки(ЧужоеСообщение); // SKIP
|
||||
Отправка2 = OPI_ZeroMQ.ОтправитьДанные(Паблишер, ЧужиеДанные, 3000); // SKIP
|
||||
НеПришло = OPI_ZeroMQ.ПолучитьДанные(Подписчик, 300); // SKIP
|
||||
Отправка2 = OPI_ZeroMQ.ОтправитьДанные(ОбъектСервера, ЧужиеДанные, 3000); // SKIP
|
||||
НеПришло = OPI_ZeroMQ.ПолучитьДанные(ОбъектКлиента, 300); // SKIP
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "Подписаться");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Прием, "ZeroMQ", "Подписаться", "Проверка", Сообщение);
|
||||
OPI_ПолучениеДанныхТестов.Обработать(НеПришло, "ZeroMQ", "Подписаться", "ЧужаяТема");
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Подписчик);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Паблишер);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектКлиента);
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ZeroMQ_ЗакрытьСоединение(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 11;
|
||||
Результат = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ЗакрытьСоединение", "Открытие"); // SKIP
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Результат) Тогда
|
||||
Результат = OPI_ZeroMQ.ЗакрытьСоединение(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Обработать(ОбъектСервера, "ZeroMQ", "ЗакрытьСоединение", "Открытие"); // SKIP
|
||||
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
Результат = OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
// END
|
||||
@@ -501,9 +575,15 @@
|
||||
|
||||
Процедура ZeroMQ_ЭтоОбъектКоннектора(ПараметрыФункции)
|
||||
|
||||
Порт = ПараметрыФункции["ZeroMQ_Port"] + 12;
|
||||
Коннектор = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
Результат = OPI_ZeroMQ.ЭтоОбъектКоннектора(Коннектор);
|
||||
// Сервер
|
||||
Порт = 1234;
|
||||
ОбъектСервера = OPI_ZeroMQ.ОткрытьПортRep(Порт);
|
||||
|
||||
Если Не OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера);
|
||||
|
||||
// END
|
||||
|
||||
@@ -512,8 +592,8 @@
|
||||
Результат = OPI_ZeroMQ.ЭтоОбъектКоннектора("not-a-client");
|
||||
OPI_ПолучениеДанныхТестов.Обработать(Результат, "ZeroMQ", "ЭтоОбъектКоннектора", "Ложь");
|
||||
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(Коннектор) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(Коннектор);
|
||||
Если OPI_ZeroMQ.ЭтоОбъектКоннектора(ОбъектСервера) Тогда
|
||||
OPI_ZeroMQ.ЗакрытьСоединение(ОбъектСервера);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Reference in New Issue
Block a user