1С:Предприятие 8.3 (8.3.16.1063). Клиент-Сервер.
добавлены 2 общих макета:
WebSocketDll64 - дд, файл dll ВК для x64
WebSocketAddIn - дд, zip архив с файлом манифеста и двумя fфайлам dll 32 и 64.
&НаКлиенте
Процедура TestClient64(Команда)
ПутьКомпоненты = "ОбщийМакет.WebSocketDll64";
ИмяКомпоненты = "WebSocket64";
ТестКомпонентыНаКлиенте(ПутьКомпоненты, ИмяКомпоненты);
КонецПроцедуры
&НаКлиенте
Процедура TestClientZip(Команда)
ПутьКомпоненты = "ОбщийМакет.WebSocketAddIn";
ИмяКомпоненты = "WebSocketAddIn";
ТестКомпонентыНаКлиенте(ПутьКомпоненты, ИмяКомпоненты);
КонецПроцедуры
&НаКлиенте
Процедура ТестКомпонентыНаКлиенте(ПутьКомпоненты, ИмяКомпоненты)
НачатьУстановкуВнешнейКомпоненты(Новый ОписаниеОповещения("ПослеУстановкиВК", ЭтаФорма, Новый Структура("ПутьКомпоненты, ИмяКомпоненты", ПутьКомпоненты, ИмяКомпоненты)), ПутьКомпоненты);
КонецПроцедуры
&НаКлиенте
Процедура ПослеУстановкиВК(ДопПараметры) Экспорт
НачатьПодключениеВнешнейКомпоненты(Новый ОписаниеОповещения("ПослеПодключенияВнешнейКомпоненты", ЭтаФорма, ДопПараметры), ДопПараметры.ПутьКомпоненты, ДопПараметры.ИмяКомпоненты, ТипВнешнейКомпоненты.Native);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПодключенияВнешнейКомпоненты(Подключено, ДопПараметры) Экспорт
ИмяКласса = "AddIn." + ДопПараметры.ИмяКомпоненты + ".Client";
Клиент = Новый(ИмяКласса);
АдресСервера = "wss://echo.websocket.org";
Попытка
Клиент.Подключиться(АдресСервера);
Исключение
Описание = ОписаниеОшибки();
ТекстОшибки = Клиент.ОписаниеОшибки();
ТекстОписания = Описание + ": " + ТекстОшибки;
ВызватьИсключение ТекстОписания;
КонецПопытки;
Клиент.Отключиться();
КонецПроцедуры
Показать
В случае с zip получаем ошибку:
Тип не определен (AddIn.WebSocketAddIn.Client)
{ВнешняяОбработка.TestWebSocket.Форма.Форма.Форма(53)}: Клиент = Новый(ИмяКласса);
Тестирование работы на сервере
&НаСервере
Процедура TestServer64НаСервере()
ПутьКомпоненты = "ОбщийМакет.WebSocketDll64";
ПодключитьВнешнююКомпоненту(ПутьКомпоненты, "WebSocket64", ТипВнешнейКомпоненты.Native);
Клиент = Новый("AddIn.WebSocket64.Client");
АдресСервера = "wss://echo.websocket.org";
Попытка
Клиент.Подключиться(АдресСервера);
Исключение
Описание = ОписаниеОшибки();
ТекстОшибки = Клиент.ОписаниеОшибки();
ТекстОписания = Описание + ": " + ТекстОшибки;
ВызватьИсключение ТекстОписания;
КонецПопытки;
Клиент.Отключиться();
КонецПроцедуры
&НаСервере
Процедура TestServerZipНаСервере()
ПутьКомпоненты = "ОбщийМакет.WebSocketAddIn";
ПодключитьВнешнююКомпоненту(ПутьКомпоненты, "WebSocketAddIn", ТипВнешнейКомпоненты.Native);
Клиент = Новый("AddIn.WebSocketAddIn.Client");
АдресСервера = "wss://echo.websocket.org";
Попытка
Клиент.Подключиться(АдресСервера);
Исключение
Описание = ОписаниеОшибки();
ТекстОшибки = Клиент.ОписаниеОшибки();
ТекстОписания = Описание + ": " + ТекстОшибки;
ВызватьИсключение ТекстОписания;
КонецПопытки;
Клиент.Отключиться();
КонецПроцедуры
Показать
В случае с zip получаем:
Тип не определен (AddIn.WebSocketAddIn.Client)
{ВнешняяОбработка.TestWebSocket.Форма.Форма.Форма(144)}: Клиент = Новый("AddIn.WebSocketAddIn.Client");
{ВнешняяОбработка.TestWebSocket.Форма.Форма.Форма(166)}: TestServerZipНаСервере();
Через архив ни на сервере, ни на клиенте не подключается.
Текст из файла манифеста:
<?xml version="1.0" encoding="UTF-8"?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle" name="websocket">
<component os="Windows" path="1c-websocket_Win_32.dll" type="native" arch="i386"/>
<component os="Windows" path="1c-websocket_Win_64.dll" type="native" arch="x86_64"/>
</bundle>