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

Оповещение клиента о событии. Как? :)

Оповещение клиента о событии. Как? :)
Я
   Baker_it
 
12.04.20 - 20:56
Добрый день. 8.3, толстый клиент, клиент-сервер. Снаружи стучатся на HTTP-сервис. По факту стука у определённого клиента в его сеансе должен выполнятся алгоритм. Вопрос - как? Давно не следил за обновлением платформы, может есть что-то быстрое и удобное для этого?
   ДенисЧ
 
1 - 12.04.20 - 21:00
Сервер взаимодействия?
   Baker_it
 
2 - 12.04.20 - 21:01
(1) Не понимать вопрос :)
   ДенисЧ
 
3 - 12.04.20 - 21:08
(2) А ты из какой местности, если не секрет?
   sevod
 
4 - 12.04.20 - 21:08
(0) С сервера к клиенту не обратится никак. Делаешь что бы клиент слал на сервер запросы с необходимой периодичностью (час/минута/секунда). Используй ПодключитьОбработчикОжидания (подробности сам догуглишь). Разумеется все что прилетает на http где то хранишь на сервере, куда клиент и стучится.
   sevod
 
5 - 12.04.20 - 21:10
К (4). Сервер и клиен, это серверная и клиентская часть 1с.
   Baker_it
 
6 - 12.04.20 - 21:11
(4) Спасибо, думал есть альтернативный вариант :) Так уже реализовано почти, не нравится.
   sevod
 
7 - 12.04.20 - 21:12
(6) мне тоже. Может я чего пропустил и напишут.
   craxx
 
8 - 12.04.20 - 21:12
(6) Тебе же написали в (1)
   Baker_it
 
9 - 12.04.20 - 21:13
(8) Так я вопрос не понял :)
   Garykom
 
10 - 12.04.20 - 21:16
(0) Внешняя компонента поднимает свой микро http сервер/сервис и если пришел запрос то внешнее событие
   Baker_it
 
11 - 12.04.20 - 21:26
(10) ВК работает в сеансе пользователя? Там параллельно есть необходимость распределения событий между пользователями. Сейчас работает так, как предлагали выше - анализируется тело POST-запроса, результат пишется в регистр сведений, который опрашивается пользователи по заданному интервалу. Так как пользователей много (а будет кратно больше) - не хочу тыркать очень часто РС на предмет обновлений (это еще и не очень ОК с точки зрения комфорта работы пользователя), как и редкое обновление тоже. Почему-то думал, что в 1С уже прикрутили чего-нибудь реактивного, с получением данных на лету.
   Юрий Лазаренко
 
12 - 12.04.20 - 21:29
(11) Если сервер и клиентские машины в одной подсети, то через UDP можно. Именно как в (10) сказано ВК - в сеансе пользователя, точнее, даже не в сеансе, а на самой машине пользователя, так как это не сервер, а клиент.
   Юрий Лазаренко
 
13 - 12.04.20 - 21:30
+(12) На краснодарском Infostart Meetup в феврале был доклад на эту тему, даже с кусками кода - копируй и запускай.
   acht
 
14 - 12.04.20 - 21:32
(0) А какой результат ожидается, если пользователь откроет под собой два сеанса на одной машине? Ну, например, для ускорения длительных операций (:
Или наоборот, закроет сеанс.
   Baker_it
 
15 - 12.04.20 - 21:33
(14) Если два сеанса - то код выполнится в обоих (но на самом деле 99% таких пользователей работают в рамках одного сеанса). Если нет ни одного - то не выполнится вовсе :)
   Baker_it
 
16 - 12.04.20 - 21:36
(12) Машины в одной подсети. Остался один последний вопрос - поднимаю в сеансе пользователя ВК, которая слушает UDP. Кто его будет слать? Внешние HTTP запросы по замыслу принимаются сервером 1С совсем снаружи (от стороннего сервиса) и потом по-идее я должен в этом же серверном сеансе постучаться к пользователю? :)
   Юрий Лазаренко
 
17 - 12.04.20 - 21:38
(16) Да, сервер принимает http-запрос и шлет UDP-запрос пользователю.
   acht
 
18 - 12.04.20 - 21:40
(15) Я к чему. Схема с регистром и опросом дает тебе бесплатно еще и возможность легко найти необработанные события и обработать их потом или наехать на пользователя. Модный UDP все равно потребует того же самого, плюс две компоненты - на сервере и на каждом клиенте.
Выигрыш только в выносе опроса сервера в отдельный поток и уменьшение серверных вызовов.
   Baker_it
 
19 - 12.04.20 - 21:43
(17) Спасибо за идею, будем подумать! :)
   Baker_it
 
20 - 12.04.20 - 21:48
(18) Мне история с регистром не нравится только с одного ракурса - притормаживания в сеансе пользователя. Там теоретические коротенький РС должен быть, длиной n*m, где n - количество юзеров,а m - число оповещений, не более 5 на первый взгляд.
   Garykom
 
21 - 12.04.20 - 21:48
(17) Зачем udp когда сервер и другие клиенты могут штатно httpсоединение без ВК
   Baker_it
 
22 - 12.04.20 - 21:50
(18) И хотелось бы реакции системы максимально быстрой с момента поступления HTTP запроса ко мне на веб-сервер :)
   Garykom
 
23 - 12.04.20 - 22:04
Самое интересное что в 1С уже изначально встроен механизм "сообщений с сервера на клиент".
Это банальная отладка - debug.
   Курцвейл
 
24 - 12.04.20 - 22:37
ПодключитьОбработчикОповещения(<ИмяПроцедуры>)
И оповещай всех пользователей как закончишь свой ХТТП запрос обрабатывать.
   Сияющий в темноте
 
25 - 12.04.20 - 22:51
(23) там передача в конфигуратор операций и с клиента и с сервера,опять же,принимающая сторона-конфигуратор.
   Сияющий в темноте
 
26 - 12.04.20 - 22:53
если оповещение нужно не мгновенно,то с регистром нормально,только нужно регистр наличия сообщений для сеансов,который они будут дергать все время,отдельно от регистра с данными сообщения,где будут хранится только сообщения,которые еще не обработаны.
   Garykom
 
27 - 12.04.20 - 23:03
(25) и обратно передача тоже, потому что команды понимает продолжить отладку и т.д.
и да отладку через http настраивал?


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