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