zoukankan      html  css  js  c++  java
  • websocket协议详解;

    websocket是基于http协议,借用http协议来完成连接阶段的握手;

    当连接建立后,浏览器和服务器之间的通信就和http协议没有关系了,b、s之间只用websocket协议来完成基本通信。

    =========

    ajax轮询,其原理让浏览器隔几秒就发送一次请求,询问服务器是否有新的信息。

    long poll,原理和ajax差不多,都是基于轮询的方式,不过是采用的阻塞模式。即client发起连接后,如果没有消息,就一直不返回response到客户端,知道有消息菜饭会,返回完之后,客户端在此建立连接,周而复始。下面是long poll的伪代码。

    loop(){

    if(connction){

    request

    while(response!=0){

    wait;

    }

    hand the message;

    }

    }

    ==从上面的分析可以看到,client都是利用http主动建立连接,等待服务端处理。即服务端不能主动想client推送信息,只能等待client请求,被动回复请求。因为http协议是无状态的。

    所以ajax的缺点是很明显,需要服务器有很快的处理速度。

    long poll的缺点是则需要较高的并发量。

    ==websocket登场了,可以解决的问题包括:

    1,服务器完成协议升级后http-》websocket,server可以主动想client推送信息。利用client定义的回调函数,来完成。

    2,在传统的方式上,要不断建立和关闭http协议,由于http是非状态的,每次都要鉴别identity info(鉴别信息),来告诉server你是谁。

    但是websocket只需要将一次http握手,整个的通信过程都是建立在一次连接中,也就避免了hthtp的非状态性。这样将客户主动询问,转换为服务器推送信息才发送信息。

    =====

     

  • 相关阅读:
    阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件
    react的setState到底是同步还是异步?
    JMeter入门教程
    手把手教你接口自动化测试 – SoapUI & Groovy
    解读Web应用程序安全性问题的本质
    python实现的json数据以HTTP GET,POST,PUT,DELETE方式页面请求
    Linux常用命令
    PV原语操作详解
    软考计算机网络原理之IP计算问题汇总
    化繁为简了解进程与线程
  • 原文地址:https://www.cnblogs.com/li-daphne/p/7581665.html
Copyright © 2011-2022 走看看