用於asp.net MVC聊天應用程序的signalR vs html5 websockets
我在使用 html5 websockets 或 signalR 進行聊天時陷入兩難境地,我們將集成到我們的 asp.net mvc3 應用程序中
我的困境**1.**如果signalR實現了longpolling,
為什麼要使用它? 2.長輪詢不好嗎? 3.websockets和longpolling完全不同? 4.只有IIS8支持websockets? 5.我可以使用 Html5 websockets 將聊天數據保存到 SQL 數據庫中嗎? 6.是否有讓websockets在IIS7及更高版本上工作的解決方法(我將只使用chrome瀏覽器) 感謝您的支持
- 如果 signalR 實現了長輪詢,為什麼要使用它?
答:啟用對舊瀏覽器的支持或對數據傳輸實現細節進行更高級別的抽象。如果您肯定會使用支持 websockets 的 chrome 版本 - 使用 websockets(這裡有很好的解釋)。 2. 長輪詢不好嗎?
答:實際上它不是最好的(見上面的連結),但對於舊瀏覽器來說總比沒有好。 3. websockets和longpolling完全不同?
答案:它們完全不同(再次參見上面的答案),但它們有共同點(它們都需要連接)。 4. 只有 IIS8 支持 websockets?
答:如果您想使用純 .NET 框架 - 是的,只有 IIS 8 和 .NET 4.5。但是您可以使用另一個 websockets 伺服器(請參閱下面的解決方法)。 5. 我可以使用 Html5 websockets 將聊天數據保存到 SQL 數據庫中嗎?
答:websockets 只是一種發送數據的協議,所以從字面上看,除了傳輸數據之外*,*您無法執行任何操作。但是,例如,您可以擁有一個將發送到伺服器的令牌,這意味著“將所有以前的數據保存到數據庫”。或者,您可以根據不同類型的消息(例如在socket.io 中為 node.js 實現)來處理更複雜的場景。 6. 是否有一種解決方法可以使 websockets 在 IIS7 和更高版本上工作(我將只使用 chrome 瀏覽器)
回答 - 是的,只是不要使用 IIS,但另一個 websockets 伺服器實現(例如Fleck - 對支持 websecets 的“舊”瀏覽器有很好的支持)並將它與 IIS 一起作為一個單獨的程序執行。