Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring long polling / 25 сообщений из 58, страница 1 из 3
18.07.2018, 12:22
    #39675572
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Привет собссно есть задача сделать некую структуру чато-подобную с реквест-респонзами между клиентом и сервером по условно постоянно поднятому каналу.

Как это сделать на вебсокетах вопросов в общем то нет. всё просто. там у спринга есть некий хендлер который каждый раз пробегает когда что то приходит с фронта, ну и наоборот - просто постим ивент в сессию вебсокетовую и фронт его получает..

тепреь с лонг поллингом -- допустим я возвращаю футуру контроллером, теперь у меня цепляется клиент открывает хттп подключение и....
и что? у меня пробегает код и ничего. не пойму никак куда и что мне вкарячить чтоб он ждал ответа и когда ответ готов он его получал (или не получал).

или я чот туплю.
...
Рейтинг: 0 / 0
18.07.2018, 12:37
    #39675582
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaTчтоб он ждал ответа
Чем это отличается от обычного запроса и ответа?
...
Рейтинг: 0 / 0
18.07.2018, 12:47
    #39675585
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaT,
Обычный polling проще. В js таймер и запрашивай сервер каждые 15 сек.
...
Рейтинг: 0 / 0
18.07.2018, 13:01
    #39675595
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaTКак это сделать на вебсокетах вопросов в общем то нет. всё просто.т.е. ищем приключения....
...
Рейтинг: 0 / 0
18.07.2018, 13:07
    #39675601
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Petro123andreykaT,
Обычный polling проще. В js таймер и запрашивай сервер каждые 15 сек.
проще. но скважность 15 сек это долго.
делать 2 секунды это дикий оверхед будет если клиентов вдруг станет больше.
...
Рейтинг: 0 / 0
18.07.2018, 13:08
    #39675602
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
вадяandreykaTКак это сделать на вебсокетах вопросов в общем то нет. всё просто.т.е. ищем приключения....
не все клиенты умеют вебсокеты это раз. два с вебсокетами возни в других местах есть. в т.ч. при тухлом интернет коннекшене. а так да вс тут выигрывает.
...
Рейтинг: 0 / 0
18.07.2018, 13:16
    #39675605
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaTне все клиенты умеют вебсокеты это раз. два с вебсокетами возни в других местах есть. в т.ч. при тухлом интернет коннекшене. а так да вс тут выигрывает.для тех кто не умеет - есть эмуляция на флэш, ws прекрасно работает на скоростях в 50кб. обрывы также обрабатываются как и в ajax....
...
Рейтинг: 0 / 0
18.07.2018, 13:29
    #39675622
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaTPetro123andreykaT,
Обычный polling проще. В js таймер и запрашивай сервер каждые 15 сек.
проще. но скважность 15 сек это долго.
делать 2 секунды это дикий оверхед будет если клиентов вдруг станет больше.вывести настройку юзверю проблема?
...
Рейтинг: 0 / 0
18.07.2018, 13:30
    #39675624
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
...
Рейтинг: 0 / 0
18.07.2018, 13:32
    #39675627
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaT,
И не понял логику. Скважность в long polling равна скважности не в long)))
...
Рейтинг: 0 / 0
18.07.2018, 13:52
    #39675642
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Petro123Вадя, есть же тема для тебя
iOS некорректно срабатывает событие onClose WebSocket там нормально, просто при переходе яблочники не закрывают нормально ws, а обрывают. но это не сказывается на всю работу.
...
Рейтинг: 0 / 0
18.07.2018, 13:55
    #39675645
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
неее. там другая тема. там у тебя поднимается хттп сессия и висит скажем 10 сек потом приходит респонз 200-тка (скажем пусто). следом сразу же у тебя поднимается хттп сессия и снова так же висит 10 сек и возврат 200. потом сразу же снова поднимается хттп сессия и висит теперь уже 5 секунд потому что на пятой секунде происходит на бэке какое то событие которое генерит сообщение которое и приходит в хттп респонзе, следом снова поднимается хттп сессия на следующие 10 сек (если ничего не случится. или меньше - если случится).

т.е. допустим, неполучить условно "сразу" сообщение ты можешь только в промежуток между закрытием предыдущей сессии и открытием следующей (где его ты и получишь). это наихудший случай.

если же мы делаем просто реквесты каждые 15 секунд, то этот самый промежуток неполучения у тебя будет уже в худшем случае 15 секунд.
...
Рейтинг: 0 / 0
18.07.2018, 14:08
    #39675651
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaT,
Не мудри.
При long сессия висит. При не long сессия не висит.
Но частота опроса одинакова.
И сессию новую не надо создавать.
Что замудрил то?
...
Рейтинг: 0 / 0
18.07.2018, 14:12
    #39675654
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Petro123andreykaT,
Не мудри.
При long сессия висит. При не long сессия не висит.
Но частота опроса одинакова.
И сессию новую не надо создавать.
Что замудрил то?разумеется.
500 запросов в сек. устраивает?
Или пишем на будущее которое никогда не наступит?
...
Рейтинг: 0 / 0
18.07.2018, 14:13
    #39675656
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaTесли же мы делаем просто реквесты каждые 15 секунд, то этот самый промежуток неполучения у тебя будет уже в худшем случае 15 секунд.
Тьфу)))) вот на текст выше был ответ
...
Рейтинг: 0 / 0
18.07.2018, 14:49
    #39675693
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Petro123andreykaT,
Не мудри.
При long сессия висит. При не long сессия не висит.
Но частота опроса одинакова.
И сессию новую не надо создавать.
Что замудрил то?

при лонге сессия висит или до максимального срока или до наступления события (при котором она закрывается). это главная разница между просто тиканьем по циклу.

собссно это главное преимущество перед просто дерганьем эндпойнта по таймеру
...
Рейтинг: 0 / 0
18.07.2018, 15:33
    #39675725
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
andreykaTPetro123andreykaT,
Не мудри.
При long сессия висит. При не long сессия не висит.
Но частота опроса одинакова.
И сессию новую не надо создавать.
Что замудрил то?

при лонге сессия висит или до максимального срока или до наступления события (при котором она закрывается). это главная разница между просто тиканьем по циклу.

собссно это главное преимущество перед просто дерганьем эндпойнта по таймеру
Ну дак все это знают.
Мое имхо, что это преимущество не нужно.
Удачи!
...
Рейтинг: 0 / 0
18.07.2018, 15:37
    #39675730
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Petro123Ну дак все это знают.
Мое имхо, что это преимущество не нужно.
Удачи!
Если события генерируются на сервере, то это должно быть более эффективно, чем раз в N секунд делать опрос с клиента + отслеживать отвалившихся клиентов.
...
Рейтинг: 0 / 0
18.07.2018, 15:48
    #39675740
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Leonid Kudryavtsev,
Про минусы промолчал.
Минус в повышенной нагрузке на сервер при long.
Соединения то открытыми держим.
...
Рейтинг: 0 / 0
18.07.2018, 15:50
    #39675744
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
При long запросы не реже 30 сек т.к. таймаут.
А при не long каждые 3 сек для чата.
...
Рейтинг: 0 / 0
18.07.2018, 15:53
    #39675745
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Leonid Kudryavtsevотслеживать отвалившихсязачем?
И там и там ответ на запрос клиента.
Только при long мы тормозим сервлет и он тупо стоит пока ответ не засуним))
...
Рейтинг: 0 / 0
18.07.2018, 16:30
    #39675764
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
так ну лонгполлинг - это один из подходов для ПОЦ. я смотрю все варианты.

мне больше всего нравится та тема с юнидирекшинал вебсокет нотификациями.
...
Рейтинг: 0 / 0
18.07.2018, 17:03
    #39675786
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Petro123Соединения то открытыми держим.
Х.з.
это скорее нагрузка на роутеры/инфраструктуру. Но и то не понятно, что дешевле: или держать открытыми или все время заново переустанавливать.

Для сервера:
При обычных сокетах - может быть проблема по кол-ву thread на сервере. При NIO - должно быть фиолетово.
...
Рейтинг: 0 / 0
18.07.2018, 17:06
    #39675788
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Leonid KudryavtsevХ.з.да)
...
Рейтинг: 0 / 0
18.07.2018, 19:32
    #39675856
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring long polling
Чото меня корчит от американизмов. Не лучше ли писать handling, future, polling?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring long polling / 25 сообщений из 58, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]