HTTP协议的不足:基于“请求-响应”模型
,只有客户端发了请求,服务器才会给响应,即没有请求就没有响应;一次请求也只能得到一次响应。在特殊应用场景有不足:
使用HTTP协议的解决方案: setInterval+AJAX => 心跳请求
注意:心跳过于频繁服务器压力太大;不频繁客户端获取消息有延迟。
最佳解决方案:——改用其它协议:
WebSocket协议:基于“广播-收听”模型
,客户端连接到服务器上就不再断开,服务器有了消息可以随时发送给客户端,同时客户端也可以不停的给服务器发消息,服务器可以没有一次应答。即一方可以连续发多个消息,对方不停的接收。不足:客户端和服务器是永久连接——服务器端可以同时容纳的连接数有限制的。适用于“聊天室”、“实时走势图”等应用场景。
WebSocket应用需要服务器端和客户端都要使用WebSocket协议。传统的ApacheWeb不再适用。可以使用PHP或Node.js编写这样的服务器。
运行PHP编写的Socket服务端程序:
c:/xampp/php/php.exe e:/socket_server.php
网友评论