Сессия возобновляет проблему с прикреплением strophe и Ejabberd
-
26-09-2019 - |
Вопрос
У меня много трудностей работы функции «Прикрепить () ()» Строфы.
Я работаю над социальной сетью, где пользователи будут серфинговыми страницами, и в то же время сохраняют соединение в чате. Я не хочу переподписаться / повторно на каждой странице, так что согласно этой ссылке, http://groups.google.com/group/strophe/browse_thread/thread/430da5e788278F3A5E788278F3A9F382F?SHOW_DOCID=93C48C88164F382F&FWC=1., Я храням Сид и избавился в печенье onunload.
На следующей странице, когда я пытаюсь использовать новый SID и избавиться (после увеличения его на 1), моя сессия уже уничтожена. Ejabberd сообщает «Ошибка на http Tow. Причина: bad_key"
WTF происходит?
Решение 2
Мне удалось решить проблему.
Избавление было двойным увеличенным между нагрузками страницы. Увеличивая его только после начала приложения сеанса.
Я не знаю, почему сессия отменена, но вот что случилось:
- Потому что избавление составляет +2 больше, чем предыдущие, ejabberd хранит запрос в буфер и не пересылает его клиентам
- Следующие 2 запроса также хранятся
- Тот, который заставляет Ejabberd отменить сеанс
Любые подсказки?
Другие советы
Без более журнала информации от Ejabberd или Firebug, это будет трудно диагностировать. Правильная часть фактически хранится в cookie? Что думает, что Ejabberd - это последняя посланная Стэнцо, и какую ценность у него есть? Что такое первая строфа и первое значение из-за новой страницы? Как долго между этими двумя stanzas?
Обновлено: причина, по которой сеанс отменяется, связана с моделью безопасности BOSH. Фактически, пара SID и RID секретны. Если вы знаете пару, вы можете прикрепить к сеансу. Для того, чтобы люди могли быть в состоянии угадать людей, избавление отбрасывается случайным образом из очень большого пространства. Если вы отправите избавление от очень маленького окна из тока, он отключит сеанс. Окно обычно (RID, RID + 5) или около того.