Facebook聊天如何工作?任何人都可以給我想法嗎?我的意思是他們使用websocket或AJAX?他們如何實施它?Facebook聊天如何工作?
9
A
回答
10
這是一個comet (see wikipedia)模型:
Comet是一個Web應用程序模型,其中一個長期持有的HTTP請求 允許Web服務器將數據推到瀏覽器,而瀏覽器 明確要求它。彗星是一個總括術語,包含用於實現這種交互的多種技術。所有這些方法 都依賴於瀏覽器中默認包含的功能,例如JavaScript, ,而非非默認插件。 Comet方法與網絡的原始模型 不同,瀏覽器一次請求完整的 網頁。
彗星框架的例子是APE。這是爲JavaScript,但彗星不僅可以寫入JavaScript。
0
用戶通過稱爲WebSocket握手的過程建立WebSocket連接。該過程從用戶向服務器發送常規HTTP請求開始。此請求中包含升級標頭,通知服務器用戶希望建立WebSocket連接。 WebSocket URL使用ws方案。還有用於安全WebSocket連接的wss,相當於HTTPS。 如果服務器支持WebSocket協議,則它同意升級並通過響應中的升級標題進行通信。 現在握手已完成,初始HTTP連接被替換爲使用相同底層TCP/IP連接的WebSocket連接。此時任何一方都可以開始發送數據。
使用WebSockets,您可以隨心所欲地傳輸儘可能多的數據,而不會產生與傳統HTTP請求相關的開銷。數據通過WebSocket作爲消息傳輸,每個消息由一個或多個包含您要發送的數據(有效負載)的幀組成。爲了確保消息在到達客戶端時能夠被正確地重建,每個幀都以4-12字節的有效負載數據作爲前綴。使用這種基於幀的消息傳遞系統有助於減少傳輸的非有效載荷數據量,從而顯着減少延遲。
相關問題
- 1. 如何讓Facebook聊天?
- 2. Facebook聊天API
- 3. 羣聊聊天圈像網絡聊天像Facebook羣聊天UI
- 4. 瀏覽器內聊天如何工作?
- 5. 的Facebook組聊天
- 6. 整合Facebook聊天
- 7. Facebook聊天限制
- 8. 工作webrtc聊天示例
- 9. PrimePush聊天不工作
- 10. 如何製作inApp「聊天」
- 11. 實現發送文件在facebook聊天像facebook聊天
- 12. 如何實現Facebook聊天窗口?
- 13. Facebook Messenger如何繪製聊天頭? (Android)
- 14. 如何登錄Facebook與gloox聊天
- 15. Facebook聊天頭如何實現?
- 16. 聊天的NodeJS例如不工作
- 17. 如何爲Facebook聊天編寫宏/網頁抓取工具?
- 18. facebook聊天不能在android中使用smack api工作
- 19. Facebook聊天API不再工作?有其他選擇嗎?
- 20. Facebook聊天是否爲測試用戶工作?
- 21. Facebook的XMPP聊天連接
- 22. 使用fbcmd的Facebook聊天
- 23. 面向Android的Facebook聊天
- 24. Javascript提交Facebook聊天
- 25. Facebook Objective-C聊天API
- 26. 在delphi中的facebook聊天?
- 27. silverlight中的facebook聊天
- 28. 網站上的Facebook聊天
- 29. Facebook聊天API和表情
- 30. 像聊天一樣的facebook
使用螢火蟲看看facebook頁面;特別是控制檯選項卡。 – Alfwed
只是一個提示:XMPP –