Синхронизация Windows с несколькими браузерами - PullRequest
0 голосов
/ 12 июня 2009

Я пытаюсь создать встроенный чат. Проблема возникает, когда два окна моего сайта открыты. Потому что тогда мой скрипт отправляет новое сообщение в окно, которое его запрашивает (пока я использую простой опрос, позже перейду к комете).

Есть ли какая-нибудь хорошая техника, о которой я не подумал, чтобы я мог отправить сообщение в оба окна браузера? В настоящее время я использую флаг чтения, поэтому, как только сообщение доставляется в одно окно, оно помечается как прочитанное. Таким образом, никогда не доставляется в другое окно. Как мне решить эту проблему?

Спасибо за ваше время.

Ответы [ 2 ]

1 голос
/ 12 июня 2009

Одна вещь, о которой я могу подумать, - это использовать какую-либо метку времени для сообщений вместо флага «чтение».

Таким образом, когда запрос страницы о новых сообщениях (и я предполагаю, что вы используете какое-то время для объединения сервера в новые сообщения) отправляет последнюю полученную временную метку, тогда сервер отправляет обратно все сообщения после этого момента.

0 голосов
/ 12 июня 2009

Каждое окно должно быть отдельным «подписчиком», а сервер должен отправлять сообщение каждому подписчику. Поэтому вместо одного флага «чтение» вам нужен флаг «чтение» для каждого подписчика.

К сожалению, это означает создание диспетчера подписчиков с очередью для каждого подписчика и способ узнать, когда абонент исчезает - возможно, когда абонент прекращает опрос в течение одной минуты.

Найдите шаблон «Наблюдатель» (также известный как «Публикация-подписка») в книге «Бригада четырех» («Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения» Гаммы, Хелма, Джонсона и Влиссида », ISBN 0-201-633610-2) или онлайн.

...