Сообщение с сервера конкретному пользователю
Добрый день. Я недавно начал применять ajax и в связи с этим возник вопрос. Допустим в сети одновременно работают два пользователя. Пользователь A отправляет сообщение для пользователя B на сервер (например с пометкой, "для B"). Каким образом можно в этот же момент заставить сервер вызвать функцию XMLHttpRequest.onreadystatechange пользователя B, или каким-то иным способом оповестить B, и только B (мгновенно как в аське) о том что A ответил?
Никак. Только если с пользвоателя B будут постоянно идти запросы об ответе А. Сервер не может уведомить В
только таймеры с малым интервалом. тогда будешь "почти" realtime наблюдать все сообщения и изменения. но! учти то, что на запрос и ответ требуется время, может потеряться коннекшн и тд :)
Цитата: Shtirlitz
Допустим в сети одновременно работают два пользователя. Пользователь A отправляет сообщение для пользователя B на сервер (например с пометкой, "для B"). Каким образом можно в этот же момент заставить сервер вызвать функцию XMLHttpRequest.onreadystatechange пользователя B, или каким-то иным способом оповестить B, и только B (мгновенно как в аське) о том что A ответил?
HTTPStreaming вам в помощь. В библиотеке xajax уже добавлена поддержка этой фичи.
Цитата:
HTTPStreaming вам в помощь
Можно об этом поподробнее. Где можно прочитать и что такое
Цитата:
библиотека xajax
?
Цитата: Тень Пса
только таймеры с малым интервалом. тогда будешь "почти" realtime наблюдать все сообщения и изменения. но!
Но. Веб сервер отфутболит какого клиент расшенив его клиентом-флудером или же попыткой DoS атаки.
Мне кажется, что это не очень удачная идея... Тут всё же проще сделать связку Java/Perl (на нём тоже вроде демонов пишут) + Flash/Flex, т.к. она под эти задачи больше заточена...
Цитата: Shtirlitz
Можно об этом поподробнее. Где можно прочитать и что такое ?
Общая теория: http://ajaxpatterns.org/wiki/index.php?title=HTTP_Streaming
Конкретная реализация: http://community.xajaxproject.org/viewtopic.php?id=639