zoukankan      html  css  js  c++  java
  • 即时通讯--socketio

    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中的请求

  • 相关阅读:
    20151010 C# 第一篇 变量类型
    20151009 C# 第一篇 程序编写规范
    20151009 C# 第一篇 基础知识
    VS 控件命名规范
    Replace Pioneer 续用2
    bcb安装控件方法汇总
    Unresolved external 'LresultFromObject'
    Form居中显示
    C++Builder 中 Enter键或者Tab键无效
    解决Ubuntu鼠标右键无反应
  • 原文地址:https://www.cnblogs.com/oklizz/p/11443134.html
Copyright © 2011-2022 走看看