为什么需要 WebSocket 协议

本文探讨了WebSocket协议的必要性,由于HTTP协议的限制,WebSocket应运而生,允许服务器主动向客户端推送信息。内容还涵盖了WebSocket与HTTP的握手过程,以及其与socket的关系,同时提及了操作系统中的socket接口和IO多路复用技术如epoll。最后,提到了基于WebSocket的PHP扩展Swoole和Workerman框架。
摘要由CSDN通过智能技术生成

  最近在把 Facebook Message 接入客服系统,由于与 Facebook Message 对接的收发消息都是通过调用 http 接口来实现的,如果想实现即时通讯,还需要在中间加一个 WebSocket 来转发消息。如下图:
  
  转存失败重新上传取消
  
  其中用到了 WebSocket 协议和 IO多路复用相关的知识。在这里做一个学习记录。
  
  为什么需要 WebSocket 协议
  
  因为 HTTP 协议有一个缺陷:通信只能先由客户端发起,然后服务器再作出响应,并不能由服务器主动向客户端推送消息。
  
  WebSocket 协议最大的特点是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息。
  
  WebSocket 与 socket 的之间关系
  
  WebSocket 是一个网络通信协议,是属于网络七层模型中的应用层的协议,同样属于应用层的协议还有 HTTP 协议、FTP协议、SMTP协议等等。
  
  而 socket 是操作系统提供的一套接口,利用这一套接口就可以编写程序实现进程之间的通信、网络通信等功能。
  
  一个 WebSocket 连接是如何建立起来的
  
  WebSocket 连接的初期是基于 HTTP 协议的,假如 WebSocket 的地址是这个:wss://www.xxx.com/websocket ,在连接 WebSocket 的初期浏览器首先会向这个地址发出一个 HTTP GET 请求,请求头信息截图如下:
  
  转存失败重新上传取消
  
  红色框标出的是比较重要的请求头:
  
  Connec

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值