ajax轮询:
客户端在间隔时间内进行不断向服务端发送请求
长轮询:
长轮询是指在客户端发起请求,但是服务端没有对应的response,不会返回一个空结果会将请求搁置在有结果时进行返回response(或者的特定的时间返回)
长连接:
HTTP/1.0中默认使用的短链接(好多博客这么说)既每一次客户端向服务端发出请求(request),服务端发送(response)给客户端一对一,但是在HTTP/1.1当中默认使用了长连接,用以保持连接特性要使用长连接需要在客户端请求头中加入:Connection:keep-alive,
此时客户端请求完成时该请求不会断开,再次请求时还是使用这个请求,但是也是会消失需要服务端软件进行配置,要进行长链接需要客户端以及服务端同时支持。
WebSocket
WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯(双向通信)的协议。在客户端向服务端发起请求即可见了长久的链接,并且进行双向的数据传输。
Websocket使用和 HTTP 相同的 TCP 端口,可以绕过大多数防火墙的限制。默认情况下,Websocket协议使用80端口;运行在TLS之上时,默认使用443端口
抄的一个例子
function WebSocketTest()
{
if ("WebSocket" in window)
{
alert("您的浏览器支持 WebSocket!");
// 打开一个 web socket
var ws = new WebSocket("ws://localhost:9998/echo");
ws.onopen = function()
{
// Web Socket 已连接上,使用 send() 方法发送数据
ws.send("发送数据");
alert("数据发送中...");
};
ws.onmessage = function (evt)
{
var received_msg = evt.data;
alert("数据已接收...");
};
ws.onclose = function()
{
// 关闭 websocket
alert("连接已关闭...");
};
}
else
{
// 浏览器不支持 WebSocket
alert("您的浏览器不支持 WebSocket!");
}
}
</script>