即時通信--socketio

1.即時通信介紹

  • 即時通信是基於TCP長鏈接, 創建鏈接以後, 客戶端/服務器能夠無限次隨時向對端發送數據, 實現服務器數據發送的即時性
  • http是短鏈接, 設計的目的是減小服務器的壓力
  • http僞即時通信
    • 輪訓 emmet
    • 長輪訓 long pulling

  • 使用場景
    • 聊天功能
    • 在線即時推送 以下單後當即推送給商戶
  • 實現即時通信
    • 本身搭建服務器
      • 選擇支持的協議 websocket xmpp
      • 使用一些比較成熟的框架 socketio xmppframework
      • 本身封裝socket
    • 使用成熟的第三方方案
      • 融雲 環信

2.websocket和socketio

  • websocket和http都是基於tcp
  • http創建的是短鏈接, 而websocket創建的是長鏈接

socket.io是基於websocket協議的一套成熟的解決方案python

  • 優勢
    • 性能好
    • 支持多平臺
  • 缺點
    • 傳輸的數據並不徹底遵循websocket協議, 這就要求客戶端和服務端都必須使用socket.io解決方案
  • 安裝 pip install python-socketio

3. 搭建socketio服務器 (重點)

搭建支持協程的socket服務器web

pip install python-socketio
pip install eventlet  # eventlet包提供了協程的支持

安裝chrome插件firecamp 用於測試socketio請求chrome

事件處理 (重點)

  • 事件: 相似於http中的路由
  • 消息: 相似於http中的請求

相關文章
相關標籤/搜索