非阻塞RPC调用,使用gSoap
Non - blocking RPC invocation, using gSoap
这可能吗?
我知道,我可以进行单向异步通信,但我希望它是双向的。
换句话说,我在询问请求/响应模式,但是非阻塞,就像这里描述的(3rd选项)
与使用gSoap的异步,确认,点对点连接相关-我想使(n)ack
s也是异步的
您需要一种将请求与回复关联起来的方法。在正常的RPC中,它们通过时间轴相关联:在另一个响应发生之前,响应跟随响应。
一个常见的解决方案是随请求一起发送一个密钥。回复引用相同的键。如果这样做,双向非阻塞RPC将成为两个单向非阻塞RPC连接的特殊情况。键通常被称为request-id或noince。我认为这是不可能的,使其双向的唯一方法是通过响应'调用的结果'
但是你可能想用一个小技巧在客户端创建另一个server2,并从服务器调用该server2或者,如果这不是你可以通过互联网,因为NAT/防火墙等
2]重新架构你的API,使客户端再次调用服务器基于服务器的响应第一次。
可以两端都有客户端-服务器。例如,您可以在系统1和系统2上拥有客户机服务器。(我指定发送方为客户端,接收方为服务器)。从sys1客户端向sys2服务器发送异步消息。在收到来自sys1的消息时,可以从sys2客户机向sys1服务器发回异步响应。这就是实现异步双向通信的方法。
我猜您需要在一个单独的线程中运行阻塞调用,如下所述:https://developer.nokia.com/Community/Wiki/Using_gsoap_for_web_services#Multithreading_for_non-blocking_calls
相关文章:
- 使用GSoap实现ONVIF
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- 在使用 gSoap 链接多个 SOAP 服务时启用保持活动状态
- 使用c++的gSOAP中的stdsoap2.cpp中存在编译错误
- 使用 CMake (make) 和 GCC 构建和编译 gSOAP 项目
- 如何使用GSOAP初始化服务器上下文以启用简单身份验证(仅服务器身份验证)
- 在 soap_ssl_server_context(..) 中使用继承时 gsoap 中的分段错误
- 如何使用 gSOAP 制作 c++ 服务器
- 运行使用gSOAP创建的web服务客户端时发生SSL错误
- Visual Studio 2005在我使用GSoap生成的soapclient.cpp中引发生成错误
- 使用gSOAP独立服务器发布wsdl
- HTTP/1.1 401使用GSOAP调用EWS时出现未经授权的错误
- 如何使用gsoap在客户端调用多个服务而不产生冲突
- 非阻塞RPC调用,使用gSoap
- 使用gSoap的异步、确认、点对点连接
- 使用GSOAP访问带有自签名证书的服务
- 使用gSOAP和Apache部署web服务
- 如何使用gsoap而不安装在ubuntu中
- 在C++/Linux中使用Gsoap的WSSE插件
- 使用gSoap时,如何在C++中解释接收到的数据