一 webstock的有点
1.Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。
2.由客户端主动询问,转换为服务器推送,有信息的时候就发送
3.没有信息的时候就交给Nginx,不需要占用服务端的资源
二 应用场景:聊天室?
三 long poll ajax轮询 websocket的区别
long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型,需要有很高的并发,也就是说同时接待客户的能力。(场地大小)(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。
ajax轮询 让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。 需要服务器有很快的处理速度和资源。(速度)
以上两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性。这两种都是非常消耗资源的。HTTP还是一个无状态协议。通俗的说就是,服务器因为每天要接待太多客户了,是个健忘鬼,你一挂电话,他就把你的东西全忘光了,把你的东西全丢掉了。你第二次还得再告诉服务器一遍。
Websocket只需要一次HTTP握手,所以说整个通讯过程是建立在一次连接/状态中,也就避免了HTTP的非状态性,服务端会一直知道你