15

这甚至可能吗?

我知道,我可以进行单向异步通信,但我希望它是双向的。

换句话说,我问的是请求/响应模式,但不是阻塞的,就像这里描述的那样(第三个选项)

使用 gSoap 的异步、确认、点对点连接相关- 我也想让(n)acks 异步

4

4 回答 4

1

您需要一种将请求与回复相关联的方法。在正常的 RPC 中,它们通过时间线相关联:在另一个响应发生之前,响应跟随响应。

一种常见的解决方案是随请求一起发送密钥。回复引用相同的密钥。如果这样做,双向非阻塞 RPC 将成为两个单向非阻塞 RPC 连接的特例。密钥通常被称为 request-id 或 noince 之类的东西。

于 2013-09-07T21:14:45.580 回答
0

我认为这是不可能通过基本用法实现的,唯一的方法是通过响应“通话结果”

但是您可能想使用小技巧 1] 在客户端创建另一个 server2 并从服务器调用该 server2 或者如果不是这样,由于 NAT / 防火墙等原因,您可以通过 Internet 进行操作
2] 重新构建您的 api,以便客户端再次调用基于服务器的服务器服务器上第一时间响应。

于 2013-06-18T06:33:09.973 回答
0

您可以在两端都有客户端 - 服务器。例如,您可以在系统 1 和系统 2 上拥有客户端服务器。(我将发送者指定为 cient,将接收者指定为服务器)。您将异步消息从 sys1 客户端发送到 sys 2 服务器。从 sys1 接收消息后,您可以将 sys 2 客户端的异步响应发送回 sys1 服务器。这就是您可以进行异步双向通信的方式。

于 2013-07-19T13:03:15.790 回答
0

我想您需要在单独的线程中运行阻塞调用,如下所述:https ://developer.nokia.com/Community/Wiki/Using_gsoap_for_web_services#Multithreading_for_non-blocking_calls

于 2013-07-25T14:09:58.880 回答