即时通信笔记

什么是即时通信/通讯

理解:同一时刻,双方都能够主动给对方发送消息!基于互联网的即时交流消息的业务!

浏览器 和 web服务器 之间 是不是即时通信呢?!
答: 不是!!原因是,浏览器主动发送请求,服务器被动响应!!

问题来了:假如我们发头条工程(flask工程)中, A用户关注了B用户!我们后台这边需要主动把"A关注了B"的这件事通知给B!
使用fask能不能实现中个通知?!
答:我们的flask web工程无法将该消息发送给B用户(客户端)的!

头条项目中的推送实现
  • 1、使用在线推送模式
  • 2、自己搭建一个即时通讯服务器
  • 3、要求客户端登陆连接即时通信服务器
自己搭建一个即时通信服务器,主动推送消息给客户端

“协议”含义:约定双方(客户端和服务端)如何进行通信!

HTTP协议描述的一种通信方式:客户端(浏览器)主动发送消息给服务器,服务器被动响应消息给客户端!——这种通信方式不是即时通信!

WebSocket协议——该协议一种描述了即时通信的通信方式!客户端可以主动发消息给服务端,服务端也可以主动发消息给客户端!

WebSocket协议

如果一个工具/模块,是基于WebSocket协议实现的,那么代码就需要实现浏览器和服务器只需要完成一次握手(不是指建立TCP连接的那个三次握手,是指在建立TCP连接后传输一次握手数据),两者之间就直接可以创建持久性的连接,并进行双向数据传输。

根据HTTP协议,实现一个Nginx
根据WebSocket协议,实现一个即时通信服务器

我们并不会去自己实现WebSocket协议,而是找一个工具socketio,使用该工具模块可以快速搭建出一个即时通信服务器;socketio就是WebSocket协议的一个具体的代码实现!

使用socketio工具,实现一个即时通信服务器

socketio是一个基于WebSocket协议实现的一个即时通讯服务器框架;用该框架可以快速开发出一个即时通信服务器!

优点:1、双向即时通信;2、有python库点实现

缺点:通用性不好,使用socketio构建的即时通讯服务器,就必须使用socketio构建即时通讯客户端!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值