很多没有开发过高并发,用户数多的应用的程序员,不怎么了解websocket,接下来我对websocket做一个简单的介绍:
http或者https大家都非常熟悉,开发app或者web应用的时候,经常碰到的场景是前端post或者get一个服务器请求,服务器返回数据给前端,前端拿着数据做渲染;这种方式只能实现单向通信,也就是服务器只有在接受前端请求的时候才会返回数据。
设想一个场景,前端需要实时知道服务端的数据,比如一款游戏app,每个玩家需要实时知道别的玩家的游戏数据,那通过普通的http请求怎么实现呢?一种传统的方式是轮询,即app端设置一个特定的时间(比如1s)向服务器请求数据,显然这是一种比较消耗资源的做法,为什么?
因为每一次http请求都需要建立一个http连接,一个http请求报文,由请求行,头部,空行和请求数据4部分组成,请求数据占比很少,就会消耗很多资源在发送报文,解析报文,建立连接上。
而websocket是一种基于STOMP的协议,本质是基于TCP全双工通信,即长连接通信,每次建立连接后,前端只需要等待服务端向其推送数据即可,其沟通成本小,且可以实现实时通信。
本文出自 “12581171” 博客,请务必保留此出处http://12591171.blog.51cto.com/12581171/1898185
原文:http://12591171.blog.51cto.com/12581171/1898185