当前位置: 首页 > 工具软件 > Ajax Poll > 使用案例 >

AJAX、Long Poll、WebScoket 等连接服务

司寇山
2023-12-01

一 AJAX

轮询,让浏览器隔个几秒就发送一次异步数据传输(Http)请求,询问服务器是否有新信息,长轮询使得服务器开销增大。
Http是非持久协议,生命周期通过Request界定,即一个Request返回一个且只有一个Response,Response被动,不能主动发起。

二 Long Poll

类似AJAX,但当无消息时始终不返回Response给客户端,直到有消息才返回,返回完之后,客户端再次建立连接,周而复始。

三 WebSocket

持久化协议,有新数据时就主动推送给浏览器(Server Push)。

 在实现连线过程中可以通过浏览器发出websocket连线请求,然后服务器发出回应,这个过程通常称为“握手”。在 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

在实现连线过程中可以通过浏览器发出websocket连线请求,然后服务器发出回应,这个过程通常称为“握手”。在 WebSocket API,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

在websocket的世界中总共有4种事件:onopen、onclose、onmessage和onerror
    onopen:websocket建立连接完成
    onclose:websocket连接被关闭或无法建立连接
    onmessage:websocket收到数据,发送数据对应socket.send方法
    onerror:websocket发生错误

// 创建一个Socket实例
var socket = new WebSocket('ws://localhost:8080'); 
// 建立ws连接 
socket.onopen = function(event) { 
// 发送一个初始化消息
socket.send('I am the client and I\'m listening!'); 
// 监听ws消息
socket.onmessage = function(event) { 
console.log('Client received a message',event); 
}; 
// 关闭ws监听
socket.onclose = function(event) { 
	console.log('Client notified socket has closed',event); 
}; 
// 关闭Socket.... 
socket.close() 

 

 类似资料: