WebSocket不得不说的故事

原理部分(转知乎Ovear,赞同人数极多)

  1. HTML5出的协议,但HTTP不支持持久化连接:websocket是一个新协议,跟h协有交集并非全部,层级不同
  2. Http生命周期通过Request来界定,一个request一个response,不变的是Request=Response,response被动且不能主动发起

    首先看一下Http的握手阶段
    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

    其中Upgrade:websocket
    Connection:Upgrade
    为核心
    gap苏服务器发起ws协议,然后验证服务器助理,并告知协议版本

服务器会返回
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=
Sec-WebSocket-Protocol: chat

最后Http告诉客户协议的更换
Upgrade: websocket
Connection: Upgrade

ajax轮询和long poll都是在不断的建立Http连接,等待服务端处理,可以体现http的被动性,
即服务器不能主动联系客户端,

up主写了个奇怪的场景。。。。客户端:啦啦啦,我要建立Websocket协议,需要的服务:chat,Websocket协议版本:17(HTTP Request)服务端:ok,确认,已升级为Websocket协议(HTTP Protocols Switched)客户端:麻烦你有信息的时候推送给我噢。。服务端:ok,有的时候会告诉你的。服务端:balabalabalabala服务端:balabalabalabala服务端:哈哈哈哈哈啊哈哈哈哈服务端:笑死我了哈哈哈哈哈哈哈

这种就是回调,有消息时主动干啥

应为他们我过了手,就一直在连接态中

感觉比较科普。。。看看就行了

然后开始编程了

在pom里面加dependency,看人家博客,加了jackson的annotation,core,databind,它可以把java转json,所以websocket和json是虾米关系捏,我就当它只能传json吧,估计比较方便。spring一系列的dependency,然后引入了gson,这又是啥捏。卧槽,跟jackson差不多,先不管了。

接下来写了web.xml,很好奇里面的那些东西都代表什么来着,我记得应该是配置了一个SpringMvc服务器,前面的ns,xsi命名空间,版本规范不说,下面在servlet中申明了springmvc自带的dispatcherServlet,并写了servletMapping,即总的网址/,blablablabla

在写spring-mvc.xml,User.java,这个User拥有id,name,password三个属性

在websocket里写了很多,先谢了一个WebSocketConfig,@Component和一些东西,配置了一个MyWebSocketHandler和一个拦截器(这啥,做完这票得好好学学spring了)

我现在感觉handler像一个钩子.
无论如何都引入不了jquery明明路径都是对的,还引入了绝对路径。这是为什么呢、

哇!!网上真的大神多啊,原来是尼玛xml配置的问题,hiehiehie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值