2017-02-16 25 views
1

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

做一些研究之后,我发现了一些可行的解决方案:使用长轮询网页API或类似的,通过.NET的WebSocket实现增加在WCF WebSocket的支持,并使用SignalR。到目前为止,我更倾向于SignalR,因为我希望尽可能减少对WCF的更改。

所以,如果我的理解是正确的,使用SignalR的时候,它会创建一个服务器上的服务和客户端之间的通信集线器代理。此外,它将负责通信的传输,如果WebSocket在浏览器中不受支持,它可以默认使用WebSocket并返回到其他协议,并且可以在服务中没有实现协议的情况下进行传输。

我的问题是,如果我想使用SignalR我目前的WCF服务,这将是使它工作的步骤是什么? WCF服务是一个在服务器上作为Windows服务运行的自我主机。在WCF服务中,我有不同的子服务端点以及Silverlight客户端的当前端点。到目前为止,我可以添加自己的主机SignalR与WCF服务项目,它正在运行,但我不知道下一步会是什么。我需要为SignalR集线器添加一个单独的终端吗?

另一个问题是,我需要做一些修改双工服务,使其与SignalR工作?另外,客户端项目可以在WCF服务项目中与SignalR分开吗?最后,比较在WCF服务中添加对WebSocket的支持,并且只是实现SignalR,哪一个在长期内会有更好的优势。

谢谢。

回答

1

.NET 4.5已经推出NetHttpbinding在WCF,对于双工消息模式自动使用的WebSockets和http用于请求答复的消息模式。

更多关于Nethttpbinding这里 - https://msdn.microsoft.com/en-us/library/hh674273(v=vs.110).aspx

+0

我不知道......我 –

+0

知道他们有在.net中的最新版本的WebSocket的支持。我只是不知道是否会对当前的代码进行很多修改以支持它。任何想法如何做到这一点? – Spincel