|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
Доброго времени дня! Понадобилось нам реализовать long polling вебсервис операцию. Смысл такой, что клиент отправляет SOAP запрос и не сразу получает ответ, а висит, допустим минуту, и по истечении минуты или раньше WebService отправляет обратно ответ. Ну вообщем обычный LongPolling, только для JAX-WS. Так воооот. Так как эту минуту webservice может по сути ничего особенного не делать, а всего лишь ждать какого-нибудь события, то не хотелось бы, чтобы он Thread держал. В Servlet 3 появилась такая фишка как Async Servlet Чудесно рабоатет! Но, для сервлетов.... Кто-нибудь сталкивался с тем, как это включить для веб сервиса? Ведь по сути тот же сервлет! Но при попытке вызвать HttpRequest#startAsync внутри webservice операции закономерно получаем Код: java 1.
Ну потому что сервлет не помечен как async=true. Или может вообще иначе как-нибудь сделать? Или пусть клиент callback передает в запросе и получает SOAP нотификацию отдельным обратным запросом... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 15:04 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
rabiter, А зачем вам это понадобилось? SOAP вбивает время ответа внутри сообщений чтобы его не взломали. Там миллисекунды. И есть 3 или 4 вида таймаутов штатных. Это же не чат одноклассницы асинхронность делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 16:17 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
rabiterПонадобилось нампроснулись с утра и понадобилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 16:18 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
qi_ipWebsocket? Вариант, но нельзя исключать, что вебсокет будет недоступен (продукт коробочный, фиг знает какой у заказчика environment, поэтому мы исходим из websocket но всегда готовы downgrade сделать на longpolling) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 16:59 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
rabiter, Вебсокет или tcp/lp или http это протокол поддерживает soap из коробки. Он нижнего уровня. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 17:04 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
PetroNotC SharpSOAP вбивает время ответа внутри сообщений чтобы его не взломали. Там миллисекунды. Как timeout спасет от взлома, и какого взлома? Не видел никаких таймаутов штатных внутри SOAP, я в дебаге между SOAP клиентом и SOAP сервером могу какие угодно задержки делать. PetroNotC SharpЭто же не чат одноклассницы асинхронность делать. а что вас смущает? Вообще асинхронные вебсервисы обычная практика. Клиент отправляет запрос (+ в запросе отправляет callback адрес), сервер сразу возвращает дежурный ответ, типа ожидайте, мы с вами свяжемся. И потом, по когда ответ готов, отправляет по указанному клиенитом callback адресу ответ. Но тут по сути получается два запроса - от клиента к серверу и потом от сервера к клиенту (вроде так). Мне нужен long polling, вот зачем: Это soap метод запроса конфигурации. И он должен висеть до тех пор, пока конфигурация не изменится. Т.е. так другая система будет трекать момент изменения конфигурации в нашей системе. Хрень какая-то, может лучше нам их оповещать самим, когда конфигурация изменяется. Пойду сейчас с ними пообщаюсь. По поводу JAX-WS и AsyncServlet - погуглил, похоже нельзя их подружить. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 17:15 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
rabiterВообще асинхронные вебсервисы обычная практика. Клиент отправляет запрос (+ в запросе отправляет callback адрес),в шарпе это из коробки. Ты уверен что при Двухсторонней связи это нет в java? Каллбэка? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 17:19 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
PetroNotC SharprabiterВообще асинхронные вебсервисы обычная практика. Клиент отправляет запрос (+ в запросе отправляет callback адрес),в шарпе это из коробки. Ты уверен что при Двухсторонней связи это нет в java? Каллбэка? да есть конечно, что значит нет, думаю надо тут копать, нафиг этот long polling, попробуем по другому. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 17:30 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
rabiterпопробуем по другому.да. Покопайте. А насчет таймаута, то должен connect.timeout request.timeout Иначе если они большие, то любой большой запрос вредного клиента и у вас сервер встает колом. А если таймАут на ответ 1 сек. То сервер сбросит запрос и не ляжет под хакером. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 17:33 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
Обратный вызов вместо лонгпоолинг https://examples.javacodegeeks.com/enterprise-java/jws/jax-ws-callback-example/ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 17:39 |
|
Long polling на JAX-WS
|
|||
---|---|---|---|
#18+
PetroNotC SharpОбратный вызов вместо лонгпоолинг https://examples.javacodegeeks.com/enterprise-java/jws/jax-ws-callback-example/ спасибо за ссылку! сохранил ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2019, 17:43 |
|
|
start [/forum/topic.php?fid=59&fpage=23&tid=2121118]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 238ms |
total: | 417ms |
0 / 0 |