tutorial c++ c soap asynchronous gsoap

c++ - tutorial - Invocación de RPC sin bloqueo, usando gSoap



gsoap download (4)

Creo que no es posible por el uso básico, la única manera de hacerlo de dos maneras es a través de la respuesta ''resultados de la llamada''

Pero es posible que desee utilizar un pequeño truco 1] Cree otro servidor2 en el extremo del cliente y llame a ese servidor2 desde el servidor O, si eso no es posible, puede hacerlo a través de Internet debido a NAT / firewall, etc.
2] vuelva a diseñar su API para que el cliente vuelva a llamar al servidor en función de que los servidores respondan por primera vez.

¿Esto es posible?

Lo sé, puedo hacer una comunicación asincrónica unidireccional , pero quiero que sea bidireccional.

En otras palabras, estoy preguntando sobre el patrón de solicitud / respuesta , pero no bloqueador, como se describe aquí (la opción)

Relacionado con la conexión asincrónica, reconocida, punto a punto usando gSoap - Me gustaría hacer que el (n)ack s también sea asincrónico.


Puede tener cliente - servidor en ambos extremos. Por ejemplo, puede tener un servidor cliente en el sistema 1 y el sistema 2. (Especifico el remitente como servidor y el receptor como servidor). Envía un mensaje asincrónico desde el cliente sys1 al servidor sys 2. Al recibir el mensaje de sys1, puede enviar una respuesta asincrónica desde el cliente sys 2 al servidor sys1. Así es como puede hacer una comunicación bidireccional asíncrona.



Necesita una forma de asociar solicitudes con respuestas. En RPC normal, están asociados por una línea de tiempo: la respuesta sigue a la respuesta antes de que pueda ocurrir otra respuesta.

Una solución común es enviar una clave junto con la solicitud. La respuesta hace referencia a la misma clave. Si hace esto, el RPC bidireccional sin bloqueo se convierte en un caso especial de dos conexiones RPC no bloqueantes de una vía. La clave se llama comúnmente algo así como request-id o noince.