使用javascript(AJAX)进行双工WCF服务调用

时间:2016-01-21 08:44:46

标签: javascript jquery ajax wcf rest

现在我正在使用WCF Rest Service

现在我正在WCF REST服务中尝试WCF双工通信

目前我通过jquery AJAX调用服务并获得回复

像这样:

 $.ajax({
        type: varType, //GET or POST or PUT or DELETE verb
        url: varUrl, // Location of the service
        data: varData, //Data sent to server
        contentType: varContentType, // content type sent to server
        dataType: varDataType, //Expected data format from server
        processdata: varProcessData, //True or False
        crossDomain: true,
        cache: varCache,
        timeout: 200000,
        success:  function (response) {// When Service call success
                 var names = response.d;
                 alert(names);
             },
        error: function (xhr) {// When Service call fails
          alert(xhr.responseText);
        }
    });

但是在双工通信中,服务中有一个回叫合同,该服务稍后会与客户通信。

如何在jquery ajax中获得回调合约的响应?

我也有疑问,webHttpbinding是否支持双工通信?

1 个答案:

答案 0 :(得分:0)

  

如何在jquery ajax中获得回调合约的响应?

应该使用恕我直言,通过HTTP SignalR接收从您的服务到客户端的电话。它采用推技术,长拉等技术来实现这一目标。另一种方法是通过反复调用服务进行更改来模拟这一点。

似乎很难通过支持双工通信的WSDualHttpBinding来实现。请参阅Juval Lowy在“编程WCF”一书中的说明,其中他说明了这种绑定:“双工回调是非标准的,因为没有行业参考说明如何将客户端端点地址传递给服务或服务如何发布首先是回调合约。“

  

另外我有一个疑问,webHttpbinding是否支持双工通信?

我相信它不受支持。 WebHttpBinding不支持会话(ReliableSession属性),这是双工通信所必需的(请参阅System-Provided Bindings)。

并且BTW WebHttpBinding被ASP.NET WebApi取代。