2009-06-12 5 views
0

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

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

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

ответ

1

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

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

0

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

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

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

+0

это будет настоящей болью для управления. –

Смежные вопросы