2013-07-13 49 views
1

已經開始使用SignalR。希望澄清一些關於SignalR如何實現廣播的疑問,基本上服務器如何啓動通信?SignalR如何廣播消息?

1>當我們爲一個讓請求說.aspx頁面中正常情況下,服務器呈現頁面並返回效應初探返回給客戶端和東西做

但是SignalR如何能夠不間斷的能在ASP.net網站上提供Ticker演示的情況下,在Background/Async中執行。

我google了一點,發現IRegisteredObject是需要執行的對象持續需要註冊HostingEnvironment的方式之一,但爲了類必須實現IRegisteredObject接口,但在股票演示的情況下沒有任何該類實現IRegisteredObject接口。

我在這裏找點什麼,或者SignalR使用完全不同的技術?

回答

3

SignalR利用4個傳輸來處理來自服務器的數據。一次只能使用一個傳輸器,但SignalR有4個傳輸器來確保各種設備/瀏覽器上的服務器/客戶端通信。這裏的傳輸和短技術說明:

  1. 長輪詢,接收數據,它使用一個Ajax請求,其響應不會被釋放,直到有可用的數據在服務器上,一旦服務器返回數據的扶住響應客戶端然後創建另一個請求並等待下一批數據。要發送數據,它會創建第二個Ajax請求。
  2. Forever Frame,使用iframe通過它將服務器按下javascript文本然後在iframe中執行,iframe然後將執行傳播到父頁面,然後處理數據。發送數據SignalR使用ajax請求。
  3. Server Sent Events使用EventSource對象。幾乎所有的IE都支持。 EventSource對象打開一個單向管道,服務器可以通過該管道將數據泵入,從而允許客戶端實時接收數據。發送數據SignalR使用ajax請求。
  4. Web套接字使用內置的瀏覽器WebSocket對象,該對象打開單個雙向通道,通過該通道可以接收和發送數據。

這就是SignalR每個運輸的精髓,您可以看到David Fowler和Damian Edwards創建精簡版SignalR here的小時演示。它基本上強調了SignalR如何在覆蓋範圍內工作。

+0

謝謝你的回覆,我知道SignalR使用的差分傳輸。我的疑問是,SignalR如何在服務器上連續運行,基本上像一個schedular。 SignalR是否會在AppDomain中用完,就像我在上面的帖子中解釋過的IRegisteredObject一樣。在這種情況下,他們不需要從客戶端獲得激活處理的請求(更新股票價格)。我看到了David Fowler Lite版本,但更多的關於集線器和客戶端如何通信,以及我的查詢是如何SignalR持續處理,即使沒有來自客戶端的請求? –