• WebSocket介绍


    WebSocket介绍

    一、轮询与长轮询

    二、WebSocket介绍

    三、使用WebSocket实现一个多人聊天室

    四、使用WebSocket实现一个一对一聊天(单聊)

    一、轮询与长轮询

    转自:http://www.cnblogs.com/guanghe/p/9217015.html

    轮询

    轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。
    优点:后端程序编写比较容易。
    缺点:请求中有大半是无用,浪费带宽和服务器资源。(而每一次的 HTTP 请求和应答都带有完整的 HTTP 头信息,这就增加了每次传输的数据量)
    实例:适于小型应用。

    举个例子:

    客户端向服务端发起一个请求
    服务端没消息
    客户端向服务端发起一个请求
    服务端没消息
    客户端向服务端发起一个请求
    服务端终于有消息了,我都快累死了
    客户端你以为我不累啊

    长轮询

    长轮询:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接(或到了设定的超时时间关闭连接),客户端处理完响应信息后再向服务器发送新的请求。
    优点:在无消息的情况下不会频繁的请求,节省了网络流量,解决了服务端一直疲于接受请求的窘境
    缺点:服务器hold连接会消耗资源,需要同时维护多个线程,服务器所能承载的TCP连接数是有上限的,这种轮询很容易把连接数顶满。
    实例:WebQQ、Hi网页版、Facebook IM。

    举个例子:

    loop 1:
    客户端向服务端发起一个请求
    服务端没消息保存你的连接不断开,并不返回等待消息,等有消息给你返回
    客户端等待…
    服务器说我累了,我不想给你看着了,主动关闭连接
    客户端说怎么可以给我断掉,于是再次发起请求
    goto 1

    二、WebSocket介绍

    转自:https://www.cnblogs.com/jingmoxukong/p/7755643.html

    WebSocket 是什么(what)?

    WebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

    为什么需要 WebSocket (why)?

    了解计算机网络协议的人,应该都知道:HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理。

    这种通信模型有一个弊端:HTTP 协议无法实现服务器主动向客户端发起消息。

    这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。大多数 Web 应用程序将通过频繁的异步JavaScript和XML(AJAX)请求实现长轮询。轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。

    三、使用WebSocket实现一个多人聊天室

    四、使用WebSocket实现一个一对一聊天(单聊)

  • 相关阅读:
    U启动安装原版Win7系统教程
    U启动制作U盘启动盘详细教程
    大白菜装机版一键制作启动u盘教程
    git 学习笔记5--rm & mv,undo
    git 学习笔记4--.gitignore
    git 学习笔记3--status flow
    git 学习笔记2--How to create/clone a repository
    git 学习笔记1--config & help
    Ubuntu Mono 运行 Helloworld
    HttpClient 使用
  • 原文地址:https://www.cnblogs.com/neymargoal/p/9879344.html
Copyright © 2020-2023  润新知