2012-11-02 24 views
2

是否有任何情況下系統允許Windows應用商店(即Metro)應用通過WebSocket連接到特定主機,但不嘗試與其建立TCP連接?爲什麼Windows Store應用程序使用WebSockets而不是原始TCP?

+0

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

+0

@ paulsm4:Q1)這是一個選項,但比TCP更復雜,特別是如果你已經有一臺服務器說專有基於TCP的協議,它需要更新到WebSockets的頂層。 Q2)通過任何系統提供的API由RFC-6455指定的協議。 –

+0

@ paulsm4:雖然我的理解是Metro應用程序只允許使用Windows.Networking.Sockets之一。 –

回答

3

您所要求的「應用程序是由系統允許」,但你應該考慮到,不僅涉及的兩個端點(客戶端,服務器),而且在網絡之間和任何中介機構,如防火牆,代理服務器等等。

由於它與HTTP兼容的初始握手,WebSocket連接比某些任意端口上的原始TCP連接更有可能成功。但是,如果您比較標準端口443上的安全WebSocket連接與端口443上的原始TLS/TCP連接的成功率,則這些可能與類似。

通常,中介將無法攔截,檢查或塊TLS/443 ..如果他們想允許HTTPS ..

+0

有道理。我認爲我隱式地比較了端口80/443上的原始TCP連接,因爲這正是我正在使用的產品 - 我們有專門的服務器工具來將這些連接與實際的HTTP(S)分開。但你說得對,在我所問的一般情況下,這通常不會成爲一種選擇。 –

0

有一個關於爲什麼會有人使用WebSockets一個不錯的博客:http://lucumr.pocoo.org/2012/9/24/websockets-101/

,有人已發佈了對計算器關於親的利弊: WebSockets vs raw TCP sockets in Flash

編輯:第二杆與閃光燈的事情,但是對它仍然有一些意義。

+0

這解釋了什麼WebSockets **是**,但沒有回答我的問題:**是否曾經有任何Windows系統應用程序允許系統通過WebSocket連接到特定主機的情況,但不嘗試一個原始的TCP連接呢?** –

相關問題