Javascript 将SignalR与自主机WCF一起使用,并通过HTML客户端使用集线器代理

Javascript 将SignalR与自主机WCF一起使用,并通过HTML客户端使用集线器代理,javascript,web-services,wcf,silverlight,signalr,Javascript,Web Services,Wcf,Silverlight,Signalr,所以目前,我正在迁移一个实现WCF服务的旧项目,并通过Silverlight客户端使用它。此WCF服务使用Silverlight自动理解并知道如何处理的双工轮询方法。因此,一个新的HTML客户端将取代Silverlight客户端 在做了一些研究之后,我发现了一些有效的解决方案:使用长轮询web api或类似的方法,通过.NET WebSocket实现在WCF中添加对WebSocket的支持,以及使用Signal。到目前为止,我更倾向于信号机,因为我希望尽可能减少对WCF的更改 因此,如果我的理解

所以目前,我正在迁移一个实现WCF服务的旧项目,并通过Silverlight客户端使用它。此WCF服务使用Silverlight自动理解并知道如何处理的双工轮询方法。因此,一个新的HTML客户端将取代Silverlight客户端

在做了一些研究之后,我发现了一些有效的解决方案:使用长轮询web api或类似的方法,通过.NET WebSocket实现在WCF中添加对WebSocket的支持,以及使用Signal。到目前为止,我更倾向于信号机,因为我希望尽可能减少对WCF的更改

因此,如果我的理解是正确的,那么在使用signar时,它将创建一个中心代理,在服务器中的服务和客户端之间进行通信。此外,它还将负责通信的传输,默认情况下,它可以使用WebSocket,如果浏览器不支持WebSocket,则返回到其他协议,并且它可以这样做,而无需在服务中实现该协议

我的问题是,如果我想在我当前的WCF服务中使用SignalR,需要采取哪些步骤才能使其正常工作?WCF服务是在服务器上作为Windows服务运行的自主机。在WCF服务中,我有不同的子服务端点以及Silverlight客户端的当前端点。到目前为止,我能够在WCF服务项目中添加self-host Signaler,并且它正在运行,但我不确定下一步是什么。我是否必须为信号中心添加单独的端点

另一个问题是,我是否需要对双工服务进行一些修改以使其与Signal一起工作?此外,客户项目能否与WCF服务项目内的信号机分开?最后,比较一下在WCF服务中添加对WebSocket的支持和仅仅实现SignalR,从长远来看,哪一个会有更好的优势


谢谢。

.Net 4.5在WCF中引入了NetHttpbinding,它使用WebSocket自动执行双工消息模式,使用http执行请求-应答消息模式

更多关于Nethttpbinding的信息,请点击此处-

我知道他们在最新版本的.Net中支持WebSocket。我只是不知道是否会有很多修改,以目前的代码,以支持这一点。有什么办法吗?