关于webstocket

2025-08-19 07:51:14 | 世界杯足球价格

一 webstock的有点

1.Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。

2.由客户端主动询问,转换为服务器推送,有信息的时候就发送

3.没有信息的时候就交给Nginx,不需要占用服务端的资源

二 应用场景:聊天室?

三 long poll ajax轮询 websocket的区别

long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型,需要有很高的并发,也就是说同时接待客户的能力。(场地大小)(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。

ajax轮询 让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。 需要服务器有很快的处理速度和资源。(速度)

以上两种方式,都是在不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的另外一个特点,被动性。这两种都是非常消耗资源的。HTTP还是一个无状态协议。通俗的说就是,服务器因为每天要接待太多客户了,是个健忘鬼,你一挂电话,他就把你的东西全忘光了,把你的东西全丢掉了。你第二次还得再告诉服务器一遍。

Websocket只需要一次HTTP握手,所以说整个通讯过程是建立在一次连接/状态中,也就避免了HTTP的非状态性,服务端会一直知道你的信息,直到你关闭请求,这样就解决了接线员要反复解析HTTP协议,还要查看identity info的信息。同时由客户主动询问,转换为服务器(推送)有信息的时候就发送(当然客户端还是等主动发送信息过来的。。),没有信息的时候就交给接线员(Nginx),不需要占用本身速度就慢的客服(Handler)了

摘自原文地址:https://blog.csdn.net/sqlquan/article/details/103425158?utm_term=phpwebsocket%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-0-103425158&spm=3001.4430