Как бы вы отражали сеансы привязки XMPP к нескольким вкладкам или окнам а-ля facebook, okCupid и т. Д. - PullRequest
1 голос
/ 15 июля 2010

Я реализовал функцию обмена мгновенными сообщениями / чата на основе веб-технологий с использованием http-привязки и ejabberd.Для ленивых вот краткая версия моего вопроса:

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

Более подробные сообщения для тех, кому не все равно:

Одним из возможных решений будет просто позволить каждой вкладке управлять своим собственным соединением.XMPP имеет достаточно приличную поддержку нескольких клиентов, поэтому пусть он выполняет маршрутизацию.У меня есть как минимум 2 проблемы с этим решением.1 - это очевидное увеличение потребления полосы пропускания, которое это может вызвать.2 - отсутствие поддержки нескольких клиентов с одинаковым JID для подключения к комнатам MUC в ejabberd.По-видимому, это будет реализовано для версии 3.1, но для меня это серьезная проблема.

Сначала я задумался, не может ли быть задействована какая-то флеш-магия, но кажется, что swf на странице используется только для воспроизведения уведомления.Звуковые эффекты.Вы можете подтвердить это с помощью firebug или подобного, чтобы удалить тег для вставки.Функция чата все еще работает.

По сути, я оставляю файлы cookie в качестве единственного способа обмена информацией между вкладками.В этом случае главная вкладка будет сбрасывать все сообщения в куки, которые могут быть опрошены с других вкладок.Это кажется мне довольно нелепым, так как частота опроса должна быть исключительно высокой, чтобы избежать задержки.Что произойдет, когда будет закрыто главное окно?

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

1 Ответ

0 голосов
/ 19 июля 2010

Итак, я немного поболтал в чате на Facebook, и кажется, что они просто позволяют каждой вкладке управлять своим собственным подключением. Ejabberd ставит несколько препятствий на пути к достижению этого с помощью комнат MUC, поэтому я думаю, именно поэтому я был склонен обесценить это решение изначально. Я думаю, что только личные сообщения должны быть более простыми для всех, кто заинтересован.

Проблема с несколькими экземплярами MUC: https://support.process -one.net / browse / EJAB-305

Полагаю, мне придется заняться исправлением ejabberd. Если у кого-то есть другие замечания, я бы хотел их услышать.

...