Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вызов клиента с сервера

Вызов клиента с сервера
Я
   Hasty
 
07.07.20 - 11:00
Приветствую коллеги!
Прошу наставить новичка на путь истинный.
Пишу расширение для работы с телефонией.
АТС создает вебхук на событие и я его отлавливаю http-сервисом, все в порядке, все работает.
Но требуется при срабатывании события на сервере отправить сообщение пользователю.
Я понимаю, что нельзя вызвать клиентские функции из сервера, поэтому решил эту задачу так:
При срабатывании события создаю запись в регистр сведений, каждая запись в измерениях содержит ссылку на пользователя, для которого оно создано. Так же в записи содержится измерение "Просмотрено" тип булево.
А каждый клиент раз в 2 секунды проверяет регистр сведений и если находит запись с условием "Просмотрено" = Ложь, отображает сообщение методом ПоказатьОповещениеПользователя(), и меняет флаг.
Это все работает.
Но! На сколько все это правильно? Каждый клиент каждые 2 секунды выполняет запрос.
Может есть более элегантный способ решения?
Заранее спасибо!
   asady
 
1 - 07.07.20 - 11:03
(0) или ВК или юзать сервер взаимодействия
дергать каждые 2 сек из всех клиентов сервер - имхо жестоко.
   Hasty
 
2 - 07.07.20 - 12:16
(1) Вот и мне не нравиться, чувствую что можно сделать лучше.
Сервер взаимодействия погуглю, но очень хочется остаться в рамках платформы, без дополнительного софта
   Fedor-1971
 
3 - 07.07.20 - 12:36
(2) не оставляй записи в РС, удаляй их после Сообщить пользователю - регистр будет небольшим и отработка обращения быстрой.

Если надо хранить данные телефонии используй второй регистр, чисто для хранения с доп.полями для удобного поиска и фильтрации информации

Как варианты:
  1. если основа АТС Asterisk (или подобная) - они могут писать события в БД MySQL, вот и прилепи её как внешний источник данных, если не нужно быстрой реакции пользователя (т.е. принять звонок или выдать пользователю данные кто звонит), то достаточно формы с таблицей звонков
  2. пробуй ловить свои события клиентом (тот же гемор, только в профиль) все пользователи ломанутся получать данные с сервера телефонии, но это менее напряжно чем обрабатывать события на сервере 1С и потом думать как что-то рассказать пользователю
   dmpl
 
4 - 07.07.20 - 12:38
(2) Сервер взаимодействия - это минимум 300к в год плюсом к стоимости владения.
   Fedor-1971
 
5 - 07.07.20 - 12:48
3+ Посмотри в сторону Web-сервиса 1С: телефония просто дёргает 1С по своим событиям, но проблема информирования пользователя останется
   Hasty
 
6 - 07.07.20 - 13:02
(3) Телефония Zebratelecom, ограничен выданным API.
Могу только слать GET(PUT) запросы на получение-изменения настроек, и получать вебхуки по событиям (Создан звонок,  ответ, закончен).
Можно конечно оповещения сваливать в какую-нибудь mysql и на php (или на python, или еще на чем угодно) отдавать данные по GET запросам клиента, это конечно разгрузить сервер 1с, но какое то половинчатое решение
   Fedor-1971
 
7 - 07.07.20 - 13:06
(6) тогда надо смотреть в сторону ВК и ОбработкаВнешнегоСобытия
   fisher
 
8 - 07.07.20 - 13:07
(4) Помню меня тыкали в существование возможности приобрести сервер взаимодействий отдельно, без покупки КОРП-лицензий.
   fisher
 
9 - 07.07.20 - 13:10
Но все равно зла не хватает. ИМХО покупать сервер взаимодействий для закрытия сабжевой потребности - это из пушки по воробьям. Ничего не мешало ведь реализовать более легкое решение. Куча их в виде ВК существует. Но нет. Им КОРП продвигать надо.
   craxx
 
10 - 07.07.20 - 13:11
(9) совсем изврат конечно, но апач+ поле HTML документа на форме.
   craxx
 
11 - 07.07.20 - 13:12
+(10) а там уже средствами AJAX всякие подписки и т.п.
   fisher
 
12 - 07.07.20 - 13:14
(10) Изврат - это пол-беды. А вот доп-требования в виде постоянно открытой формы - это уже гораздо хуже.
   craxx
 
13 - 07.07.20 - 13:19
(12) ну это решается формой в режиме рабочего стола, где вся эта радость присутствовать
   fisher
 
14 - 07.07.20 - 13:56
(13) Да ради бога. Но лично я бы, если бы прижало с онлайн-режимом (типа телефонии), использовал бы ВК с банальным TCP-сервером.
   dmpl
 
15 - 07.07.20 - 14:39
(9) У меня вопрос - зачем весь этот фронт-энд делать на 1С? Ну не 1С-ная это тема.
   fisher
 
16 - 07.07.20 - 16:10
(15) Расклады разные бывают. Бывает, во всем остальном тема полностью 1С-ная и заводить ради нескольких калек с немудреными потребностями отдельную систему в существующий зоопарк с последующей поддержкой и дополнительными интеграциями - тоже так себе вариант.
   Hasty
 
17 - 07.07.20 - 16:31
(15) Почему же не 1с-ная, с каждым новым релизом платформы, интерфейс становиться более интерактивный.
Да и на текущей версии есть все механизмы для реализации мной задуманного функционала, кроме вот этих сообщений
   lodger
 
18 - 07.07.20 - 17:19
(3) "не оставляй записи в РС, удаляй их после Сообщить пользователю - регистр будет небольшим и отработка обращения быстрой."
ну такое себе. удаление записи самая дорогая операция в работе с РС. да и запись флагов, как в (0) тоже плохо.
если уж колхозить с РС, то просто маркер времени вешать в РС при записи. а при чтении выбирать записи не старше 5 секунд. ессно, РС становится периодическим, где период это и есть маркер времени вход.звонка.
   dmpl
 
19 - 07.07.20 - 18:09
(16) Ну если несколько калек - так и нехай дергают сервер, от него не убудет.
   craxx
 
20 - 07.07.20 - 18:26
(15) фронтенд в 1С это хорошая тема - стильно, модно и интерактивно. И хорошо продается заказчикам.
   lodger
 
21 - 07.07.20 - 18:28
(9) сервер взаимодействия продается отдельно.
   craxx
 
22 - 07.07.20 - 18:34
(21) "Розничная цена электронной поставки сейчас составляет 50 400 рублей." (с)
   lodger
 
23 - 07.07.20 - 22:20
(22) кстати, не запрещено пользоваться мощностями сервера взаимодействия всея 1с. https://1cdialog.com/ru/pricing/
   Hasty
 
24 - 07.07.20 - 22:44
(23) Пока бесплатно, а на долго ли?
   lodger
 
25 - 07.07.20 - 23:09
(24) уже 4 года бесплатная. вроде пока не чешутся, все равно им нужен демонстратор системы.
корпам он доступен по лицензии, другие крупные потребители без корпа покупают (22)
так что, этот сервис на правах демки еще долго будет жить.
   Garykom
 
26 - 07.07.20 - 23:39
(0) ВК на клиентах которые регаются на сервисе, который получает вебхук.
Сервис получив вебхук дергает нужную ВК.
Связь между ВК и сервисом как угодно хоть tcp хоть что повыше, например каждая ВК это тоже http сервис.
   Hasty
 
27 - 08.07.20 - 12:10
Всем спасибо!Буду думать в сторону ВК
   Krolik Bezobraznik
 
28 - 08.07.20 - 12:21
(0) Я не понял, Вам нужно вывести пользователю сообщение на экран со стороны сервера?
   Fedor-1971
 
29 - 08.07.20 - 12:25
(27) Дополнительно можешь глянуть в сторону локального сервера Asterisk, настроишь транк с Зеброй и получишь полные возможности сервера себе в руки.

Малость покопаться с безопасностью придётся, как я понимаю, у вас одна зебра с известными IP, что проще. Главное не выставляй сервер наружу для звонков, организуй работу через Транк и будет тебе счастье
   Hasty
 
30 - 08.07.20 - 13:12
(28) Все верно
 
 Рекламное место пустует
   ДенисЧ
 
31 - 08.07.20 - 13:14
Есть же готовые решения, правда, платные...
   craxx
 
32 - 08.07.20 - 13:16
(31) пример можно?
   Fedor-1971
 
33 - 08.07.20 - 13:25
(32) МИКО, для 8.2 у них была бесплатная библиотека, правда, нужен был локальый сервер


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.