|
|
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
Доброго вечера, друзья! Если вы используете push механизм, свой, или сторонней разработки (как например Atmosphere Framework), Comet. У меня вопрос, ведь посылаемые браузером запросы, пусть и не частые, но примерно каждую минуту, они же пролонгируют http сессию! Т.е. получается что session timeout никогда не наступит пока капает такой Comet. Интересно узнать, кто как борется с этим? И хороших всем выходных! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2015, 20:00 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiterони же пролонгируют http сессию! Откуда такой вывод? Как по-вашему работает server push и в какой именно момент он делает это с сессией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2015, 14:11 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
Blazkowiczrabiterони же пролонгируют http сессию! Откуда такой вывод? Как по-вашему работает server push и в какой именно момент он делает это с сессией? Вы всегда меня заставляете сомневаться в каких-то вещах, которые я уже усвоил для себя как неоспоримые истины :) Но касательно server push - как же? Вот Comet например. В браузере работает яваскрипт, который отправляет на сервер периодически запросы (у меня каждую минуту). Так вот каждый запрос разве не пролонгирует сессию? Просто факт обращения к сервлету уже обновляет HttpSession#getLastAccessedTime(). Но вот я сейчас подумал, а ведь в Comet запросах не должно быть наверное куки JSESSIONID! Т.е. Comet запросы вообще никак затрагивать сессию не должны. Я прав? То, что у меня не работает - это уже другой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 13:46 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
Вообще я сейчас засомневался в своих доводах. Разве можно со странички, где уже есть JSESSIONID (сервер уже создал сессию и выставил JSESSIONID кук), отправить аякс запрос без этого JSESSIONID? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 14:51 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiter, У них (в моем случае Atmocphere Framework) должен быть какой-то свой механизм поддержки таймаута сессии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 14:54 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiter Вот Comet например. В браузере работает яваскрипт, который отправляет на сервер периодически запросы (у меня каждую минуту). Нет. Это не Comet это polling. А Comet это long polling. У него такой проблемы не должно быть. Помимо этого, он почти настоящий server push. rabiterТак вот каждый запрос разве не пролонгирует сессию? Просто факт обращения к сервлету уже обновляет HttpSession#getLastAccessedTime(). Но вот я сейчас подумал, а ведь в Comet запросах не должно быть наверное куки JSESSIONID! Т.е. Comet запросы вообще никак затрагивать сессию не должны. Я прав? То, что у меня не работает - это уже другой вопрос. Да, ты прав, такая проблема есть у polling, который ты реализовал. Но это не Server Push, который ты декларируешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 16:06 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
Так я и использую long polling (Comet). Запросы висят по минуте на сервере (используется асинхронные сервлеты). Это же и есть long polling? Но я не понимаю почему это вдруг он свободен от проблемы, которую я описал. Так же эти запросы через каждую минуту будут продлевать сессию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 16:18 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiterТак я и использую long polling (Comet). Запросы висят по минуте на сервере (используется асинхронные сервлеты). Это же и есть long polling? Но я не понимаю почему это вдруг он свободен от проблемы, которую я описал. Так же эти запросы через каждую минуту будут продлевать сессию. Почему именно минуту? Long polling создаёт канал от клиента к серверу и дальше сервер им пользуется для push нотификаций. Эти нотификации сессию ну никак не продлевают. Клиент шлет каждую минуту запросы. Значит он жив. В чем проблема-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 17:20 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczrabiterТак я и использую long polling (Comet). Запросы висят по минуте на сервере (используется асинхронные сервлеты). Это же и есть long polling? Но я не понимаю почему это вдруг он свободен от проблемы, которую я описал. Так же эти запросы через каждую минуту будут продлевать сессию. Почему именно минуту? Long polling создаёт канал от клиента к серверу и дальше сервер им пользуется для push нотификаций. Эти нотификации сессию ну никак не продлевают. Ну, не знаю почему каждую минуту. Так настроен по умолчанию Atmosphere Framework что я использую. Так же можно настроить на другой интервал. 1. Если слишком долго держать открытым канал, то прокси может отрубить этот запрос по таймауту. И скрипт на клиенте должен уметь сам переоткрывать канал. 2. Если клиент ушел пить чай, из программы не вышел с расчетом на то, что у него через пол часа сама программа выгонит. Но тут у него вайфай начал отрубаться и заново переподключаться каждые 10 минут. А это значит что канал будет заново переоткрываться. А переоткрытие канала - это запрос к серверу с продлением сессии. Так что Comet ни разу не свободен от этой проблемы с продлением сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 17:46 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiter 2. Если клиент ушел пить чай, из программы не вышел Если клиент ушел пить чай, а браузер у него ломиться к серверу, то это во-первых к Comet отношения не имеет. Во-вторых никак не анулирует того факта что любая активность браузера к серверу продлевает сессию. Ну, и когда проблема ясна, что сессию продлевает не push механизм, а polling - Google -> Session timeout with polling Можно манипулировать jsessionid на клиенте, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 18:09 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЕсли клиент ушел пить чай, а браузер у него ломиться к серверу, то это во-первых к Comet отношения не имеет Скрипт на клиенте ломится, который инициирует открытие канала. Нельзя же этот скрипт рассматривать как нечто не имеющее отношение к Comet. BlazkowiczНу, и когда проблема ясна, что сессию продлевает не push механизм, а polling - Google -> Session timeout with polling Можно манипулировать jsessionid на клиенте, например. Вот я и хотел узнать кто как с этим борется. Неужели такая уж экзотическая проблема что никто не сталкивался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 18:46 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 18:50 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
Blazkowiczrabiter, Не оно? https://github.com/Atmosphere/atmosphere/issues/407 Спасибо, но нет :-) Я с ними уже общаюсь, выложил тестовое приложение на githab. Надеюсь подскажут что-нибудь. Хотя что тут подскажешь, понятно ведь что polling будет продлевать сессию) Вот если бы скрипт, который шлет ajax запросы не выставлял в заголовках запроса JSESSIONID - т.е. другими словами был бы вне сессии - то это бы конечно помогло. Но я не уверен, возможно ли это технически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 19:04 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
Скорее не вай файфай а Ось засыпая его отрубит. Если настройки по умолчанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 19:18 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiter, Не понял проблемы. Comet должен продлевать сессию до бесконечности, пока жив канал и не закрыли окно. Или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 19:23 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
Petro123rabiter, Не понял проблемы. Comet должен продлевать сессию до бесконечности, пока жив канал и не закрыли окно. Или нет? Нет, не должен. Сессия должна жить, пока пользователь активничает (кликает кнопочки). Перестал активничать пользователь, прошло пол часа - сессия умерла. А тут не умирает потому что комет фоном продолжает слать запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 19:29 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiter, У комета активничает сервер. Клиент может спать за компом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 19:47 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiterВот если бы скрипт, который шлет ajax запросы не выставлял в заголовках запроса JSESSIONID - т.е. другими словами был бы вне сессии - то это бы конечно помогло. Но я не уверен, возможно ли это технически. Дохтур, меня все игнорируют. 17240289 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 20:57 |
|
||
|
Нежелательное пролонгирование сессии push механизмом.
|
|||
|---|---|---|---|
|
#18+
rabiterНо я не уверен, возможно ли это технически. Про AJAX и Cookies погуглить за тебя? Сам не справишься? https://www.google.com/search?q=send ajax request no coockies ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2015, 20:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38875112&tid=2125830]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 469ms |

| 0 / 0 |
