Оповещения с Сервера на Клиент

1. user1302499 28.01.21 16:07 Сейчас в теме
в HTTP-сервис прилетает JSON структура, которую я разбираю. (Делаю чат, прилетает сообщение) Вот как в реальном времени можно обновлять чат?

1. идея есть записывать в РС регламентным заданием каждые 5 сек искать новые сообщения.
2. (было бы идеально) моментально через Оповестить() передавать данные, но как я понял Оповестить на сервере не работают.

Может кто-то сможет накинуть крутую идею?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. pyrkin_vanya 493 28.01.21 22:22 Сейчас в теме
(1)
в HTTP-сервис прилетает JSON структура, которую я разбираю. (Делаю чат, прилетает сообщение) Вот как в реальном времени можно обновлять чат?


А событие чем провоцируется?
5. user1302499 29.01.21 08:15 Сейчас в теме
(4) У сервиса который делает интеграцию с мессенджерами, есть вебхуки. В них вставляешь опубликованный на апаче http сервис. В http сервисе делаешь процедуру метода GET или POST и в зависимости от того какой запрос прилетает, та процедура и срабатывает
6. pyrkin_vanya 493 29.01.21 08:30 Сейчас в теме
(5)
У сервиса который делает интеграцию с мессенджерами, есть вебхуки. В них вставляешь опубликованный на апаче http сервис. В http сервисе делаешь процедуру метода GET или POST и в зависимости от того какой запрос прилетает, та процедура и срабатывает


Ну тут либо сервер взаимодействия, либо провоцировать обмен с клиента.
3. serg33rus 32 28.01.21 20:44 Сейчас в теме
У меня аналогичная задача была. Я через Сервер Взаимодействия вопрос решил. С сервера посылаешь и у клиента все квакает, показывает. Там еще плюшки есть. Но ... или Диалог (ругают периодически за тупость) или свой, но дорого.
7. user1302499 02.02.21 08:26 Сейчас в теме
(3) Сервер Взаимодействия стоит 50к лицензия на него... Есть решение через что можно бесплатно сделать?
8. serg33rus 32 02.02.21 09:22 Сейчас в теме
(7) Есть. Через регламентные задания. Но ... между запусками очередного здания будет пауза, когда никто ничего получать не будет.
9. user1302499 02.02.21 09:34 Сейчас в теме
(8) Меньше всего хочется через регламентное. Я зарегал 1с'овский сервис взаимодействия. Но не пойму как его использовать для того чтобы с сервера на клиент сообщения отправлять
10. pyrkin_vanya 493 02.02.21 09:46 Сейчас в теме
(9)Я разбирался с задачей не так давно. Вариантов найти не смог. Кроме сервера взаимодействия. Но как вы сказали сервер взаимодействия платный. И мне он не подошел. Поэтому я пришел к одному логичному выводу: Получить данные можно только с клиента. Другими словами клиент должен спровоцировать событие и оповестить сервер о своем существовании (если уж совсем по простому). Если кто-то со мной не согласен, прошу написать аргументированные доводы.
11. serg33rus 32 02.02.21 09:54 Сейчас в теме
(9) Ну как пример лови мою процедурку рассылающую уведомления пользователям. Вызывается с сервера само собой.
Процедура ОповещениеОтАТС(Кому, ТекстОповещения, Действие=Неопределено, Данные = Неопределено) 
	Если НЕ СистемаВзаимодействия.ИнформационнаяБазаЗарегистрирована() Тогда
		Возврат;
	КонецЕсли;
	
	УстановитьПривилегированныйРежим(Истина);
	
	КомуИБ = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(Кому.Наименование));
	КомуИД = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(КомуИБ.УникальныйИдентификатор);
	
	// Уведомления рассылаются от пользователя "АТС"
	АвторИБ = ПользователиИнформационнойБазы.НайтиПоИмени("АТС");
	АвторИД = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(АвторИБ.УникальныйИдентификатор);
	
	КлючОбсуждения = Строка(АвторИД) +" - "+ Строка(КомуИД);
	Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(КлючОбсуждения);
	
	// Если Обсуждение не найдено создается новое
	Если Обсуждение = Неопределено Тогда
		Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
		Обсуждение.Групповое = Ложь;
		Обсуждение.Ключ = КлючОбсуждения;
		Обсуждение.Участники.Добавить(АвторИД);
		Обсуждение.Участники.Добавить(КомуИД);
		Обсуждение.Записать();
	КонецЕсли;
	
	Сообщение = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор);
	Сообщение.Автор = АвторИД;
	Сообщение.Текст=ТекстОповещения;
	Если Действие<>Неопределено Тогда
		Сообщение.Действия.Добавить(Действие.Команда, Действие.Описание);
	КонецЕсли; 
	Если Данные<>Неопределено Тогда
		Сообщение.Данные = Данные;
	КонецЕсли; 
	Сообщение.Записать();
	
КонецПроцедуры
Показать
VyacheslavShilov; KAV2; alexovik; +3 Ответить
12. user1302499 03.02.21 08:38 Сейчас в теме
(11) Спасибо, я случайно удалил всю свою разработку по чату. Как восстановлю, попробую)
13. serg33rus 32 03.02.21 09:48 Сейчас в теме
(12) Если зарегистрироваться в Сервере Взаимодействия, то чат между пользователями появится сам по себе. Это средствами платформы реализовано. В конфигурации ничего допиливать не требуется.
14. user2107152 27.09.24 10:53 Сейчас в теме
Сообщение.Действия.Добавить(Действие.Команда, Действие.Описание);
Что находится здесь: Действие.Команда???
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот