Как замутить чат в 1С 8.2 без обработчика ожидания? #695128


#0 by zsergey
Не нравиться мне реализация с ОбработчикомОжидания. Пользователей ожидается много (до 200), пусть периодичность опроса сообщения будет 5 сек, уже нагрузка на базу. Какие еще могут быть варианты? ВК не предлагать, интеграция с ICQ сервисами, и прочую лабуду не предлагать, нужно сделать час в пределах базы.
#1 by zsergey
"нужно сделать час" -> нужно сделать чат
#2 by jsmith82
>>ВК не предлагать у ВК тоже много глюков, тоже нажимаешь Обновить
#3 by xReason
Ты видимо никогда не программировал. Все чаты работают через своего рода "Обаботчики ожиданий"
#4 by jsmith82
я писал обработчики для 386-го, когда ты под стол пешком ходил в чём проблема
#5 by jsmith82
прости )))
#6 by jsmith82
ну а реально, в чём проблема тоже сейчас стоит такая задача
#7 by zsergey
Да нет никакой проблемы! Погу написать этот чертов чат за 30 мин. МНЕ ПРОСТО ИНТЕРЕСНО, можно ли как-то по другому, может я что-то не знаю :)) Что вы так накинулись?
#8 by jsmith82
>>уже нагрузка на базу имхается,  тут пошла нить неверных дум
#9 by jsmith82
либо Обновить, либо Обработчик одно из двух
#10 by xReason
Наезды не обснованные
#11 by jsmith82
я извинился. попутал с ТС )
#12 by zsergey
в общем ясно, тему можно закрывать :)
#13 by jsmith82
ясно что? что либо прерывания, либо обновить? ну это очевидно
#14 by zsergey
ясно, что по другому никак. Достал ты уже :)
#15 by Зойч
Поле HTML - и любой чат на выбор
#16 by jsmith82
там движок старый. не прокатит
#17 by AlexITGround
Тема интересная, поэтому UP-ну
#18 by oleg_km
У нас подсистема Сообщения использует WinSock. Даже здесь на мисте неоднократно писалось. Использую лет 10, еще на фокспре, идаже раноше на дельфях.
#19 by jsmith82
это на аппаратном уровне типа?
#20 by jsmith82
расскажи подробней. я сейчас как раз пишу подсистему на овер 100 людей
#21 by jsmith82
а, всё, понял. риквест пакет
#22 by oleg_km
Где тут аппаратный уровень? Голимое API. Просто клиент опрашивает базу не по таймеру, а при запуске создает слушающий сокет UDP, регистрирует сеанс со своим IP и портом в базе. Когда отправитель отправляет сообщение, то он смотрит в базе сеансы пользователей и рассылает им датаграммы. Клиент получает датаграмму и делает запрос в базу: есть ему сообщение. Схематично это выглядит так
#23 by jsmith82
ок
#24 by 1СКонсультант
Простите за тупой вопрос, но я в этом плане нуб. А зачем обработчик ожидания? Я так себе представляю - сделать чат в виде дс и поставить автообновление 5 секунд и не парится. В чем трудность?
#25 by oleg_km
В чем отличие обработчика ожидания и автообновления? Вернее, как на 1С можно реализовать автообновление, кроме как используя обработчик ожидания?
#26 by jsmith82
+100500
#27 by sikuda
сделать чат не средствами 1С(nodejs), а хранить данные в 1С - не думал этом?
#28 by sikuda
Вот даже есть база с которой начать
#29 by IamAlexy
ну сделай динамический список выводящий сообщения чата.. чо ты как маленький.. в  нем поставь по умолчанию период обновления 3 сек..  и все.
#30 by zsergey
(28,29) не пойдет, у нас база в режиме ОП (УПП) А на HTML в ОП не взлетит, если верить в
#31 by 1СКонсультант
в настройке списка ставишь автообновление и все
#32 by Злопчинский
вот нафейхоа обновлять каждые 3 секунды.. если состояние изменяется например непредсказуемо...? сообщение пришло - вот пусть ТОГДА и автообновляется
#33 by vlandev
Может какую-то хранимку умную написать в скуле , ну или там фоновое задание , которое будет событие посылать клиенту , а у клиента по событию будет обработчик срабатывать? Такой вариант можно на 1С реализовать?
#34 by Злопчинский
ну, на клюшках в файловом варианте чаты такие есть - ставится отслеживание папки/файла - как изменение произошло - генерится внешнее событие - 1Ска его отрабатывает шттано. как в снеговике - видимо все сложнее.. особенно в тонких клиентах..
#35 by DrLekter
Подписка на событие - не?
#36 by sda553
Никак. Любой обработчик внешнего события после подключения физически так же опрашивает сервер с некоторой периодичность, не появилось ли нового сообщения для него. Т.е. создает ту же нагрузку на сервер.
#37 by oleg_km
Winsock не создает ту же нагрузку, что и автообновление
#38 by sikuda
html поле само может опрашивать сервер, без 1С. И для тебя будет откровением, но средства урезанного IE7 в 1С на порядок богаче нативных 1С. Проблема с html в 1С только одна - как-же сделать совместимое IE7 и html5.
#39 by Лефмихалыч
если отказаться от идиотской идеи делать чат в базе, то и проблем с обработчиками ожиданий не будет. Юзайте почту, джабер или что угодно еще
#40 by oleg_km
Почему почта не является базой?
#41 by IamAlexy
еще раз тупому объясните - чем динамический список то не угодил ?
#42 by oleg_km
Ну типа если пользователю никто не пишет, то он втупую дергает базу. А как в этом случае первоначальный вызов организовать? Ведь пользователь не будет весь день пялиться в динамический список
#43 by Лефмихалыч
динамический список не может самопроизвольно открыть поверх всего, когда пришло самое важное за весь день сообщение "Привет, как дела"
#44 by Котокот
Может
#45 by mrDSide
На сервере фоновый процесс запусти (Регламентное задание), которое будет обрабатывать твой регистр и отправлять нужным пользователям сообщения (каждый клиент сам будет писать сообщение и адресата в регистр).
#46 by GANR
ActiveX какие-нибудь прикрутить, сокеты.
#47 by Torquader
На самом деле, если брать поле html-документа, то из него можно сделать запрос к серверу, без запроса никак не взлетит, но никто не говорит, что сервер должен сразу ответить. Обычно, сервер сразу отвечает заголовком, а потом несколькими порциями с интервалами в несколько минут передаёт информацию о событиях. Я, например, для этого писал специальный сервер на php, который открывает на каждого клиента отдельное соединение, и, если клиенту нужно что-то сообщить, то пишет в указанный сокет информацию, а если событий какое-то время нет, то посылается пустой пакет обмена, чтобы соединение не рвалось по тайм-ауту.
#48 by mrDSide
+ Глобальный контекст (Global context) ПоказатьОповещениеПользователя (ShowUserNotification) Синтаксис: ПоказатьОповещениеПользователя(<Текст>, <НавигационнаяСсылка>, <Пояснение>, <Картинка>) Параметры: Тип: Строка. Тип: Строка. Навигационная ссылка. Показывается как гиперссылка. При нажатии на нее происходит переход по указанной ссылке. <Пояснение> (необязательный) Тип: Строка. Тип: Картинка. Картинка, которая будет показана в оповещении. Описание: Показывает окно, по умолчанию располагающееся внизу экрана, которое постепенно затухает и исчезает с экрана. В окне может располагаться ссылка, выбор которой вызывает определенные для ссылки действия (например, открытие формы). Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: Ссылка выдается, если указан параметр <Пояснение>. сюда ссылку на запись регистра.
#49 by George Wheels
Мне понравилось . Создать левый справочник, документ,... и подписку на событие.
#50 by mrDSide
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С