是否有任何情況下系統允許Windows應用商店(即Metro)應用通過WebSocket連接到特定主機,但不嘗試與其建立TCP連接?爲什麼Windows Store應用程序使用WebSockets而不是原始TCP?
回答
您所要求的「應用程序是由系統允許」,但你應該考慮到,不僅涉及的兩個端點(客戶端,服務器),而且在網絡之間和任何中介機構,如防火牆,代理服務器等等。
由於它與HTTP兼容的初始握手,WebSocket連接比某些任意端口上的原始TCP連接更有可能成功。但是,如果您比較標準端口443上的安全WebSocket連接與端口443上的原始TLS/TCP連接的成功率,則這些可能與類似。
通常,中介將無法攔截,檢查或塊TLS/443 ..如果他們想允許HTTPS ..
有道理。我認爲我隱式地比較了端口80/443上的原始TCP連接,因爲這正是我正在使用的產品 - 我們有專門的服務器工具來將這些連接與實際的HTTP(S)分開。但你說得對,在我所問的一般情況下,這通常不會成爲一種選擇。 –
有一個關於爲什麼會有人使用WebSockets一個不錯的博客:http://lucumr.pocoo.org/2012/9/24/websockets-101/
,有人已發佈了對計算器關於親的利弊: WebSockets vs raw TCP sockets in Flash
編輯:第二杆與閃光燈的事情,但是對它仍然有一些意義。
這解釋了什麼WebSockets **是**,但沒有回答我的問題:**是否曾經有任何Windows系統應用程序允許系統通過WebSocket連接到特定主機的情況,但不嘗試一個原始的TCP連接呢?** –
- 1. 什麼是Windows RT/Windows Store應用程序對App.config的回答?
- 2. 使用Websockets而不是LAN中的原始TCP套接字有什麼好處嗎?
- 3. 什麼是.NET 4.5 Windows Store應用程序等效於FrameworkPropertyMetadataOptions.AffectsRender?
- 4. 什麼是Windows Store應用程序中的樞軸?
- 5. windows store應用程序的擴展是什麼
- 6. 什麼是.NET 4.5 Windows Store應用程序等價的AsyncOperationManager?
- 7. 使用System.Diagnostics程序在Windows Store應用
- 8. 爲什麼WebSockets使用(「ws」和「wss」)而不是(「http」和「https」)?
- 9. 是否可以從Windows 8.1 Store應用程序發送短信而不是Windows Phone應用程序?
- 10. Windows Store應用程序可以編譯爲x86而不是AnyCPU嗎?
- 11. Android應用程序,不是原生的,使用什麼
- 12. 是否有爲Windows Store應用程序生成映像的應用程序?
- 13. 爲什麼RTP使用UDP而不是TCP?
- 14. 爲什麼ping使用ICMP而不是TCP?
- 15. 來自Windows應用程序的Websockets
- 16. 使用應用程序:willFinishLaunchingWithOptions而不是應用程序:didFinishLaunchingWithOptions:
- 17. 什麼時候socket.io使用輪詢而不是websockets?
- 18. AS3 - 使用TCP而不是UDP進行自動設備/應用程序發現?
- 19. y軸從10開始,而不是mschart使用windows應用程序
- 20. 瞭解DLL加載失敗的原因Windows Store應用程序
- 21. Node.Js應用程序使用90%CPU的原因是什麼?
- 22. 爲什麼GUI應用程序使用Top-Lefft角而不是左下角?
- 23. 什麼使用,而不是UIScreen.mainScreen()。應用程序框架爲swift在ios 9.1中?
- 24. 爲什麼我只使用ASP.NET MVC而不是簡單的ASP.NET應用程序
- 25. 爲什麼我的ZF2 MVC應用程序使用PhpRenderer而不是FeedRenderer?
- 26. 對於Windows Store應用程序,DisplayMemberPath =「Value」的替代選項是什麼?
- 27. 是否可以使用WebSockets或類似的原生Android應用程序?
- 28. Java:爲什麼這個程序使用char而不是int?
- 29. 爲什麼使用ttinclude而不是編譯程序集?
- 30. 我爲什麼會收到文件創建錯誤Windows 8 Store應用程序
Q1:爲什麼*不*的WebSockets是一種選擇?問題2:究竟是哪個[「WebSockets」](http://www.paulbatum.com/2011/10/getting-to-know-systemnetwebsockets.html)是指:.Net 4.5/System.Net.Websockets,Win -RT/Windows.Networking.Sockets或HTML5/Javascript WebSockets?這裏是一篇優秀的文章:http://msdn.microsoft.com/en-us/magazine/hh975342.aspx – paulsm4
@ paulsm4:Q1)這是一個選項,但比TCP更復雜,特別是如果你已經有一臺服務器說專有基於TCP的協議,它需要更新到WebSockets的頂層。 Q2)通過任何系統提供的API由RFC-6455指定的協議。 –
@ paulsm4:雖然我的理解是Metro應用程序只允許使用Windows.Networking.Sockets之一。 –