2017-02-16 36 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