2013-03-07 34 views
0

我一直在使用的WebSocket API創建我的個人項目,

爲什麼WebSockets使用握手與服務器連接?

一件事來過我的腦海的問題,而我從W3C閱讀WebSocket的規格。

爲什麼WebSockets使用握手與服務器連接?

我不能嘗試使用套接字直接連接到服務器嗎?

謝謝,祝你有美好的一天!

回答

0

你的問題不是很確切,但我想我知道你在哪裏。糾正我,如果我錯了。

新的事情是:通過使用WebSocket升級頭(在「握手」中),您可以通過正常的HTTP請求調用到服務器的低延遲雙向連接,例如,端口80.全雙工連接然後通過服務器:80。

我不能嘗試連接到服務器直接使用插座?

您的意思是普通的TCP套接字?你可以隨時嘗試,你可以嘗試任何端口,任何協議,但你想實現什麼?如果您知道到服務器:80的HTTP連接可升級到WebSocket連接,則您可以自己編寫相應的客戶端,從普通的TCP套接字開始。但是,由於您已經知道要連接到WebSocket服務器,因此您應該使用已建立的WebSocket客戶端,就像現代瀏覽器提供的那樣。

0

握手允許WebSocket連接與普通的HTTP(S)流量一起使用,並且也用於相同的端口。握手的另一個目的是執行CORS(跨源)安全策略。

握手不是防止與正常的TCP服務器正在使用WebSocket連接的唯一的事。 WebSocket協議的每個數據幀都有前導頭數據。這允許WebSockets成爲基於消息的協議(而不是像TCP那樣的原始流式傳輸),並且增加了對直接二進制數據支持的支持,並且還包含屏蔽數據(用於保護WebSocket連接免受破壞的中介機制的影響。瀏覽器的原始TCP服務的話,你可以使用websockify這是對的WebSocket橋TCP /代理免責聲明:我做了websockify