即时通信--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中的请求

相关文章
相关标签/搜索