爲什麼我們無法在瀏覽器和服務器之間建立udp連接?爲什麼TCP連接可能(網絡套接字),但不是udp?爲什麼沒有通過瀏覽器連接到HTML5的UDP連接呢?
回答
HTML5不允許任意的TCP連接。
相反,網絡套接字是建立在TCP上的一種特殊的新協議,它允許雙向通信。
同樣,WebRTC是一種特殊的新型協議,它建立在允許點對點通信的UDP上。
允許任意套接字連接將是主要安全漏洞。
確實,但即使websocket是TCP,也沒有UDP –
@Cgraphics:允許UDP網絡套接字沒有任何意義。 Web套接字依賴於TCP的屬性,如訂購和保證交付。 – SLaks
注意:WebRTC僅在Firefox的UDP之上實現。 –
很久以前,http是一個爲紙張或雜誌等文本和html運輸而設計的協議。這些信息必須完整可靠,所以http基於TCP而不是UDP。
後來人們想通過瀏覽器顯示多個媒體。某些應用程序(如閃存和Windows媒體播放器)潛入瀏覽器並作爲插件在後臺運行。他們可以使用UDP和瀏覽器播放視頻,從不介意。
現在,我們需要更多的東西,甚至顯示股指或聊天室,這些實時的情況,這是不適合http。最後,web套接字被導入。
您會發現,由於歷史原因,瀏覽器不需要UDP。視頻可以通過那些現有的插件來滿足。
這太愚蠢了。在實時視頻流媒體周邊有特定的用途,可以大大減少網絡擁塞。有線電視是多播的強有力的例子。一般情況下,實時視頻可能會丟失一些幀,如果延遲較低,則可以提供更好的用戶體驗。 –
HTML5視頻仍然無法播放實時視頻流。最近只有在某些瀏覽器中使用Media Source Extensions纔有可能。即使這樣它通常通過TCP提供WebSockets,我很確定UPD仍然會更好。 – protometa
@protometa感謝您的評論,我發現WebRTC和這篇文章http:// stackoverflow。com/questions/13040752/websockets-udp-and-benchmarks – Anderson
- 1. 沒有TIME_WAIT連接,爲什麼呢?
- 2. 通過瀏覽器連接到UDP端口5566
- 3. UDP連接不通過lan
- 4. 有時不通過UDP連接
- 5. 無法通過瀏覽器連接到雲服務器(iptables)
- 6. 爲什麼我的連接中間件沒有通過?
- 7. 連接到UDP服務器
- 8. Android模擬器瀏覽器沒有連接到互聯網
- 9. web2py沒有http連接,它如何與瀏覽器通信
- 10. 瀏覽器連接問題
- 11. 藍牙瀏覽器連接
- 12. 連接到已打開的瀏覽器
- 13. 爲什麼我的DBCP連接池沒有連接?
- 14. 瀏覽器可以通過SSL/TLS連接到代理嗎?
- 15. 代理在PHP腳本,並通過瀏覽器連接到它
- 16. AWS Ubuntu tomcat未通過Web瀏覽器連接到8080
- 17. 不能在VSCode調試通過連接到Chrome瀏覽器
- 18. 通過PHP和Apache2同時連接到單個瀏覽器
- 19. 通過瀏覽器連接到亞馬遜(AWS)EC2實例
- 20. androidpn連接到服務器和普通套接字連接有什麼區別?
- 21. 爲什麼沒有相機連接,即使我連接了它?
- 22. Android瀏覽器沒有連接到插座
- 23. Derbyjs:如何連接到它沒有瀏覽器socket.io客戶端
- 24. 用奧斯汀連接到瀏覽器
- 25. 瀏覽器連接丟失到IIS 7.5
- 26. 爲什麼沒有安卓連接到我的Web服務器
- 27. 爲什麼我的瀏覽器無法連接到nodejs socket.io服務器?
- 28. 爲什麼nodejs沒有連接mongo?
- 29. Webstorm內的量角器測試沒有瀏覽器連接
- 30. 通過Powershell獲取UDP連接列表
因爲websockets建立在TCP之上。 –
Chrome打包的應用程序可以訪問UDP io的API。 – dandavis
你能解釋更多,所以我可以谷歌嗎?這個API是什麼?你在談論webRTC嗎? –