我正在使用gSoap,我遇到了类似的问题。我必须编程服务器。客户端应发送订阅请求(包括其URL)。服务器存储此信息,并回复客户端。这个完成了。但是,当事件发生时,服务器如何将通知发送到客户端? 我编写了其余的服务,服务器响应客户端的请求。但是我不知道如何完成剩下的程序。
我需要创建三种功能: 1)客户订阅的方法:
int __ns1__SubscribeToEventNotifications(
struct soap* p_soap,
_ns1__SubscribeToEventNotifications *ns1__SubscribeToEventNotifications,
_ns1__SubscribeToEventNotificationsResponse,
&ns1__SubscribeToEventNotificationsResponse
);
2)服务器通知订阅客户端的方法:
int __ns1__NotifyEventHappened(
struct soap* p_soap,
_ns1__EventHappened *ns1__EventHappened,
_ns1__EventHappenedResponse &ns1__NotifyEventHappenedResponse
);
3)客户取消订阅的方法:
int __ns1__UnsubscribeFromEventNotifications(
struct soap* p_soap,
_ns1__UnsubscribeFromEventNotifications,
*ns1__UnsubscribeFromEventNotifications,
_ns1__UnsubscribeFromEventNotificationsResponse,
&ns1__UnsubscribeFromEventNotificationssResponse
);
在SOAP web service callback architecture?中,Glen Best写道:
“如果您知道客户端的SOAP端点地址,您可以将通知从服务器推送到客户端。客户端可以在原始SOAP请求有效负载内传输它的SOAP端点地址。稍后服务器可以向客户端发送SOAP请求。“
从服务器到客户端的请求是如何完成的?
提前致谢David Marcos