WebSocket实战:打造实时在线聊天室

一、websocket的概念

我们应该了解的是websocket是ISO参考模型的应用层的协议之一

它是一种在TCP连接上进行全双工也就是双向通信的协议。有了这个协议,客户端和服务器之间就可以随时互相发送数据,不再像传统HTTP那样一问一答了也就是请求响应。当客户端和服务器的连接一旦建立,不手动关闭或者设置自动关闭就会一直保持。

  • 全双工:允许数据在两个方向同时进行传输
  • 半双工:允许数据在两个方向上传输,但是某个时间段内只允许一个方向的传输

二、为什么我们需要WebSocket?

比如我们想要实现网上聊天室或者网上棋类在线对战游戏

HTTP 是“请求-响应”模式: 客户端发起请求,服务器被动响应。

但这种模式有几个问题:

问题 举例 结果
无法实时 比如股票价格变化,用户得不断刷新页面才看到新数据 用户体验差
请求多、浪费资源 比如每隔500ms轮询一次服务器 增加带宽、服务器压力
响应延迟 服务端不能主动通知客户端 数据总是滞后

轮询

如果我们使用websocket

连接过程如下

同理客户端2的websocket的建立流程也如上图,握手后就“切换”成 WebSocket 协议,不再是 HTTP 请求

基于websocket的网上五子棋对战的大致流程

WebsocketAPI

客户端浏览器API(了解即可)

1.websocket对象创建(javascript)

let was = new WebSocket(URL)

// URL 说明

// 格式 : 协议://ip地址/访问路径

/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值