Сегодня и здесь я вам расскажу и покажу внешнюю компоненту для 1С 7.7 (возможно, что и для 8) для общения по jabber протоколу. Компонента писалась по мотивам компонент romix`a на базе его vk_rs232, за основу был взят TJabberClient, нарытый на просторах интернета и, самое главное, все это адаптировано под Embarcadero RAD Studio XE8. До этого для разработки компонент приходилось пользовать Delphi 7 в виртуалке под WinXP, но с TJabberClient этот номер не прошел.
В общем-то, исходники с готовой vk_jabber.dll лежат тут (Яндекс.Диск). В исходниках осталась компонента vk_rs232, вычищать не стал, лень ))
Пример использования в 1С - простой эхо-бот:
В общем-то и все. Для меня этого функционала хватает, работает стабильно, вся логика через сообщения. Сообщения передаются простым текстом, без выкрутасов, в ОбработкаВнешнегоСобытия данные поступают в виде "account@jabber.ru|message", что понятно из приведенного примера. Функционал чатов, регистрации, смены статуса и прочего - в компоненте не делал, просто обмен сообщениями.
Мой код абсолютно бесплатен и свободен для использования, ненавижу само слово "лицензия".
В общем-то, исходники с готовой vk_jabber.dll лежат тут (Яндекс.Диск). В исходниках осталась компонента vk_rs232, вычищать не стал, лень ))
Пример использования в 1С - простой эхо-бот:
Перем Жаббер;
//_____________________________________________________________________________
Процедура ОбработатьСообщение(ОтКого,Сообщ)
Жаббер.Отправить(ОтКого,Сообщ);
КонецПроцедуры //ОбработатьСообщение
Процедура ОбработкаВнешнегоСобытия(Источник,Событие,Данные)
Если Найти("JabberSend/JabberRecieve",Событие)=00 Тогда
Сообщить("Источник: "+Источник+" \ Событие: "+Событие+" \ Данные: "+Данные);
КонецЕсли;
Если Событие="JabberMessage" Тогда
Стр=Данные;
ОтКого=Лев(Стр,Найти(Стр,"|")-1);
Сообщ=Прав(Стр,СтрДлина(Стр)-Найти(Стр,"|"));
Сообщить("От "+ОтКого+", сообщение "+Сообщ);
ОбработатьСообщение(ОтКого,Сообщ);
КонецЕсли;
КонецПроцедуры
//_____________________________________________________________________________
Процедура ПриОткрытии() //предопределенная
Если глЗагрузитьВнешнююКомпоненту("vk_jabber")=0 Тогда
Сообщить("Внешняя компонента не была загружена!","!");
СтатусВозврата(0);
Возврат;
КонецЕсли;
Жаббер=СоздатьОбъект("AddIn.vk_jabber");
Жаббер.Аккаунт=СокрЛП(Константа.Жаббер);
Жаббер.Пароль=СокрЛП(Константа.ЖабберПароль);
Жаббер.Подключить();
Жаббер.ПериодичностьПроверкиВСети=60;
КонецПроцедуры //ПриОткрытии
//_____________________________________________________________________________
Процедура ПриЗакрытии()
Жаббер.ПериодичностьПроверкиВСети=0;
Жаббер.Отключить();
Жаббер=0;
КонецПроцедуры //ПриЗакрытии
В общем-то и все. Для меня этого функционала хватает, работает стабильно, вся логика через сообщения. Сообщения передаются простым текстом, без выкрутасов, в ОбработкаВнешнегоСобытия данные поступают в виде "account@jabber.ru|message", что понятно из приведенного примера. Функционал чатов, регистрации, смены статуса и прочего - в компоненте не делал, просто обмен сообщениями.
Мой код абсолютно бесплатен и свободен для использования, ненавижу само слово "лицензия".
Комментариев нет:
Отправить комментарий