|
|
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
В jax-ws есть возможность генерировать прокси классы с асинхронными вызовами методов веб-сервиса, в принципе и обычные http запросы можно выполнять таким образом, например через Apache'вский HttpClient. Но мне непонятно, как это работает изнутри, ведь если сервер не держит http запрос постоянно, а отвечает сразу, то как вызывается callback? Каким образом сервер уведомляет клиента, о том, что готов ответ? Есть где то описание/спецификация, как это работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:05:06 |
|
||
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
Первый шаг механизма понятен, сервер отвечает 202 Accepted , что начал обрабатывать запрос. Но как происходит уведомление о готовности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:07:59 |
|
||
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
Скорее всего надо смотреть спеку WS-Addressing. Там в запросе шлется адрес куда отправлять асинхронный ответ. Ткни пальцем о каких конкретно прокси или аннотациях речь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:08:15 |
|
||
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
Если имеется ввиду вот это https://today.java.net/pub/a/today/2006/09/19/asynchronous-jax-ws-web-services.html#client-for-synchronous-invocation То там скорее всего какой-нибудь long polling. Т.е. всё происходит в одном соединении, но клиентский поток не блокируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:13:24 |
|
||
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, то есть всегда есть один висящий запрос, через который приходят уведомления о готовности ответа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:17:09 |
|
||
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
BlazkowiczТкни пальцем о каких конкретно прокси или аннотациях речь? Ну я генерирую прокси через wsimport, там можно подсунуть параметр с xml'кой в которой задаем <enableAsyncMapping>true</enableAsyncMapping>, после этого появляются async методы. Вот я и хочу понять, как они работают изнутри, т.к. ничего такого не смог припомнить в описании http. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:26:13 |
|
||
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
just_vladimir, https://www.ibm.com/developerworks/library/ws-asynch2/#2] One-way and notification operations ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:43:32 |
|
||
|
Как работают асинхронные http запросы изнутри
|
|||
|---|---|---|---|
|
#18+
Вот здесь ещё варианты описаны http://docs.oracle.com/cd/E17904_01/web.1111/e13734/asynch.htm Я так подозреваю, что спека задаёт только API и поверхностные требования. А то как реализован транспорт этого дела, это сугубо вопрос к вендору. Так как нас скорее всего интересут че там в Oracle JRE, то, наверное, стоит почитать классы в com.sun.xml.internal.ws.client.* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:52:17 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38301536&tid=2129142]: |
0ms |
get settings: |
20ms |
get forum list: |
28ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
47ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 314ms |
| total: | 509ms |

| 0 / 0 |
