Я реализовал функцию обмена мгновенными сообщениями / чата на основе веб-технологий с использованием http-привязки и ejabberd.Для ленивых вот краткая версия моего вопроса:
Как бы вы реализовали веб-клиент XMPP для чата, который мог бы отображаться в нескольких окнах браузера одновременно, каждое из которых отображало бы одинаковое представление открытых чатов?
Более подробные сообщения для тех, кому не все равно:
Одним из возможных решений будет просто позволить каждой вкладке управлять своим собственным соединением.XMPP имеет достаточно приличную поддержку нескольких клиентов, поэтому пусть он выполняет маршрутизацию.У меня есть как минимум 2 проблемы с этим решением.1 - это очевидное увеличение потребления полосы пропускания, которое это может вызвать.2 - отсутствие поддержки нескольких клиентов с одинаковым JID для подключения к комнатам MUC в ejabberd.По-видимому, это будет реализовано для версии 3.1, но для меня это серьезная проблема.
Сначала я задумался, не может ли быть задействована какая-то флеш-магия, но кажется, что swf на странице используется только для воспроизведения уведомления.Звуковые эффекты.Вы можете подтвердить это с помощью firebug или подобного, чтобы удалить тег для вставки.Функция чата все еще работает.
По сути, я оставляю файлы cookie в качестве единственного способа обмена информацией между вкладками.В этом случае главная вкладка будет сбрасывать все сообщения в куки, которые могут быть опрошены с других вкладок.Это кажется мне довольно нелепым, так как частота опроса должна быть исключительно высокой, чтобы избежать задержки.Что произойдет, когда будет закрыто главное окно?
Я видел, как это делали несколько сайтов, и обычно, когда я смотрю на подобные проблемы, я, по крайней мере, смутно понимаю, какпродолжай, но я не против признаться, что это поставило меня в тупик.