Отправка сообщений

Публикация № 686807

Разработка - Разработка внешних компонент

обмен сообщениями внешняя компонента

Внешняя компонента и сервер отправки сообщений клиентам с сервера / от других клиентов.

Часто необходимо оповестить пользователя о наступлении какого-то события, например, что из web-сервиса получено задание на печать или информацию об этапах выполнения длительного фонового задания. Задача, конечно, решается при помощи обработок ожидания или обработок постоянно запущенных на клиенте, которые проверяют константу / регистр, но у пользователей при этом "слетает" выбор из меню или обработку фоновую случайно закрывают...

Исходя из этих неудобств, реализовал на основе стандартных сокетов сервер, к которому подключается 1С при помощи внешней компоненты.

Реализация очень проста (см. демо конфигурацию в архиве): на сервере постоянно запущено приложение сервера, которое ретранслирует сообщение всем клиентам, которые подключены к серверу. Дополнительно на сервере добавлены 2-е внутренние команды: #SEND TO - отправка сообщения определенному пользователю, #GET USERS - получение списка подключенных пользователей. Взаимодействие с компонентой происходит через внешнее событие. Также добавлена авторизация (для исключения ложных рассылок). Сервер реализован по спецификации C++11 (контроль буфера приема данных), что теоретически должно ограничить атаки по переполнению, но все же лучше держать его в закрытой сети. По возражению, что можно реализовать через COM объект сокета, сразу отвечу, что не нашел способа обработки одновременно нескольких пользователей, т.к. нет возможности создавать отдельные потоки (thread) для каждого. Возможно, разработка кому-то пригодится.

Тестирование клиента производилось на платформе 8.3.8 (x32, x64). Сервер скомпилирован для работы как x86 (тестировался на Windows Server 2008, Windows 10, Windows 7). 

Скачать файлы

Наименование Файл Версия Размер
Отправка сообщений: Сервер, Компонента, Демо БД, Описание установки

.rar 1,64Mb
9
.rar 1,64Mb 9 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Maxis 19.10.17 08:57 Сейчас в теме
Это аналог Системы взаимодействия из версии платформы 8.3.11? Подробнее - в Заметках из Зазеркалья.
2. eugenevk 159 19.10.17 10:00 Сейчас в теме
(1) Да, но очень-очень упрощенный. Идея как раз и возникла из оповещений новой платформы, но возможности перейти на нее пока нет...
3. azubar 37 05.04.18 21:16 Сейчас в теме
Мне в 1С не хватает компоненты которая позволяла бы на клиенте устанавливать WebSocket соединение и слушать его, а при получении сообщений генерировать внешнее событие. Не встречали такую?
4. eugenevk 159 05.04.18 21:54 Сейчас в теме
(3) Посмотрите https://infostart.ru/public/808432/, похоже это то, что надо.
5. azubar 37 06.04.18 08:01 Сейчас в теме
(4) Да это оно, поиском искал но не нашел, благодарю!
Оставьте свое сообщение