diff --git a/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl b/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl index f7452104bb..c75a17f665 100644 --- a/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl +++ b/src/ru/BSL/Tests/src/CommonModules/OPI_ПолучениеДанныхТестов/Module.bsl @@ -8321,6 +8321,17 @@ КонецФункции +Функция Проверка_ZeroMQ_ОбработатьЗапрос(Знач Результат, Знач Вариант, Сообщение = "") + + ОжидаетЧто(Результат["result"]).Равно(Истина); + Данные = ПолучитьСтрокуИзДвоичныхДанных(Результат["data"]); + ОжидаетЧто(Данные).Равно(Сообщение); + Результат["data"] = "<ДвоичныеДанные>"; + + Возврат Результат; + +КонецФункции + Функция Проверка_ZeroMQ_Подписаться(Знач Результат, Знач Вариант, Сообщение = "") Если Вариант = "ЧужаяТема" Тогда @@ -8351,7 +8362,7 @@ КонецФункции -Функция Проверка_ZeroMQ_ЭтоОбъектКлиента(Знач Результат, Знач Вариант) +Функция Проверка_ZeroMQ_ЭтоОбъектКоннектора(Знач Результат, Знач Вариант) Если Вариант = "Ложь" Тогда ОжидаетЧто(Результат).Равно(Ложь); diff --git a/src/ru/BSL/Tests/src/CommonModules/OPIt_ZeroMQ/Module.bsl b/src/ru/BSL/Tests/src/CommonModules/OPIt_ZeroMQ/Module.bsl index c8c3ad4dd0..62a0bfa1e8 100644 --- a/src/ru/BSL/Tests/src/CommonModules/OPIt_ZeroMQ/Module.bsl +++ b/src/ru/BSL/Tests/src/CommonModules/OPIt_ZeroMQ/Module.bsl @@ -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.ЗакрытьСоединение(ОбъектСервера); КонецЕсли; КонецПроцедуры