У нас есть сайт, и мы разработали систему чата для него, используя библиотеку strophe.js и ejabberd XMPP-сервер. Мы используем привязку сеанса, которая была инициирована с помощью PHP (с использованием внутренней библиотеки). Мы делаем RID и SID из PHP script, а затем используем привязку сеанса в стиле. Указанные RID и SID хранятся в файле cookie, а значение RID в файле cookie обновляется при каждом обновлении RID на strophe.js. (Это значит, что мы можем повторно использовать идентификатор сеанса на странице обновления/навигации в других местах на сайте)
Теперь мы планируем работать с несколькими вкладками/окнами. Я наблюдал реализацию Facebook, и для каждой вкладки есть длинный запрос опроса в определенном домене. Этот домен отличается для каждой вкладки. Например, вкладка будет 0.86.channel.facebook.com. Вторая вкладка будет 1.86.channel.facebook.com. Насколько я понимаю, это решение для браузера ограничить 2 активных запроса в определенном домене. Как реализовано это решение для нескольких доменов?
Далее будут на сеансах чата. Разговоры чата будут разными для каждой вкладки? Как пользовательский интерфейс будет синхронизироваться с каждой вкладкой, как Facebook? Моя идея заключается в том, что за каждое действие сообщение отправляется пользователю собственного JID, содержащего действие, связанное с чатом. Например, открытие окна чата отправит строфу сообщения следующим образом:
<message from="my_own_jid" to="my_own_jid" type="chat">
<body>{"jid-of-contact":"open-chat-box"}</body>
</message>
и это будет зависеть от клиента чата, и пользовательский интерфейс будет соответствующим образом скорректирован (в этом случае откроется окно чата для контакта).
Любые предложения/комментарии по этой реализации?
Спасибо!