1.即時通訊介紹
- 即時通訊是基於TCP長連接, 建立連接之后, 客戶端/服務器可以無限次隨時向對端發送數據, 實現服務器數據發送的即時性
- http是短連接, 設計的目的是減少服務器的壓力
- http偽即時通訊
- 輪訓 emmet
- 長輪訓 long pulling
- 使用場景
- 聊天功能
- 在線即時推送 如下單后立即推送給商戶
- 實現即時通訊
- 自己搭建服務器
- 選擇支持的協議 websocket xmpp
- 使用一些比較成熟的框架 socketio xmppframework
- 自己封裝socket
- 使用成熟的第三方方案
- 融雲 環信
- 自己搭建服務器
2.websocket和socketio
- websocket和http都是基於tcp
- http建立的是短連接, 而websocket建立的是長連接
socket.io是基於websocket協議的一套成熟的解決方案
- 優點
- 性能好
- 支持多平台
- 缺點
- 傳輸的數據並不完全遵循websocket協議, 這就要求客戶端和服務端都必須使用socket.io解決方案
- 安裝
pip install python-socketio
3. 搭建socketio服務器 (重點)
搭建支持協程的socket服務器
pip install python-socketio
pip install eventlet # eventlet包提供了協程的支持
安裝chrome插件firecamp 用於測試socketio請求
事件處理 (重點)
- 事件: 類似於http中的路由
- 消息: 類似於http中的請求