Vc++ - server-WebSocket概述

一、websocket简介及握手规则


websocket与html5息息相关,websocket是一个持久化协议,websocket借助于http协议进行第一次握手,典型的websocket握手形式如下(即客户端向服务器发起请求)

GET /chat HTTP/1.1
Host: server.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==
Sec-WebSocket-Protocol: chat, superchat
Sec-WebSocket-Version: 13
Origin: http://example.com

相较于http协议的握手请求格式,websocket的握手中多了几个东西:

//通知服务器建立websocket,客户端和服务端将利用websocket进行通信
Upgrade: websocket 
Connection: Upgrade

上述是客户端通知服务器,之后建立websocket并利用websocket进行通信。除了上述的不相同外,还有不相同的地方如下:

Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== //通信秘钥
Sec-WebSocket-Protocol: chat, superchat     //协议支持的功能
Sec-WebSocket-Version: 13                   //版本号

首先sec-webSocket-key是一个Base64 encode的值,这个是浏览器随机生成的,用于验证服务器是否支持websocket协议,然后sec-websocket-protocol是一个用户自定义的字符串,同于区分同URL下,不同服务所需要的协议,简单理解:晚餐要吃西红柿,厨师你别搞错了,最后 sec-websocket-version是websocket协议所用的版本号

客户端发送了请求之后,服务端需要作出反应,简单的服务端的反应消息如下;

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat

还是一样的,upgrade及connection表明使用websocket进行通信,sec-websocket-appcept是服务器对客户端发送的秘钥的加密返回,sec-websocket-protocol是自定义的消息

二、握手完成后进行websocket通信

握手之后呢,其实websocket通信就类似于电话接通后的通信,客户端与服务端一直建立连接,客户端可以发送消息给服务端,客户端也可以发送消息给服务端,是一种常连接。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫忘输赢

莫忘输赢 - 收钱袋

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值