Web-服务器推送push——websocket、ajax轮询

本文探讨了Web服务器推送技术,包括WebSocket和Ajax轮询两种方式。WebSocket允许服务端主动向客户端推送消息,通过创建WebSocket对象,监听连接事件,实现全双工通信。服务端使用WebSocketServlet扩展并实现createWebSocketInbound方法,主动向客户端发送数据。而Ajax轮询则是客户端定时向服务端请求更新,实现近实时的通信效果。
摘要由CSDN通过智能技术生成

Web-服务器推送push

——websocket、ajax轮询

sf2gis@163.com

2015年7月31日

 

1  服务器推送websocket:服务端主动向客户端发消息。

目标:客户端和服务器建立长连接,服务端与客户端可实时收发数据。

原理:使用HTTP协议建立全双工的TCP长连接。

方法:HTML5的WebSocket。

参考:http://www.oschina.net/translate/java-ee-html5-websocket-example

1.1 客户端:Websocket类,建立连接,发送数据,接收数据。

目标:建立与服务器的连接,与服务器交互,监听事件,控制连接。

方法:WebSocket类。

1.1.1控制连接:连接服务器、关闭连接

1.1.1.1  连接服务器:创建WebSocket对象时,将直接与服务器进行连接。

      //check support

      var url="ws://localhost:8080/testAMap/ws";

      var ws;

      if ('WebSocket' in window) {  

           ws = new WebSocket(url); //when create a instance, connectto server 

      } else if ('MozWebSocket' in window) {  

           ws = new MozWebSocket(url);  

      } else {  

           alert('WebSocket is not supported by this browser.');  

           return;  

      }  

1.1.1.2  关闭连接:close()。

ws.close();//close by client

1.1.2监听连接事件:连接、接收数据、关闭、出错

1.1.2.1  连接成功事件:onopen()

      ws.onopen=function(evt){

           console.debug("onOpen()");

           ws.send("Hello,this is Client.");//if connected,send message

      };

1.1.2.2  接收数据事件:onmessage()

      ws.onmessage=function(evt){//received message from server

           console.debug("onMessage()");

           console.debug(evt.data);

           ws.close();//close by client

           console.debug("close by client");

      };

1.1.2.3  关闭事件:onclose()

      ws.onclose=function(evt){

           console.debug("onClose()");

      };

1.1.2.4  出错事件:onError()

      ws.οnerrοr=function(evt){

           console.debug("onError()");

      };

1.1.3交互:接收数据、发送数据

1.1.3.1  发送数据:send(msg);

ws.send("Hello,this isClient.");

1.1.3.2  接收数据:onmessage(event);

数据为event.date

参见:接收数据事件:onmessage()

1.1.4示例:连接服务器,并在接收到服务器信息后关闭连接。

<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN">

 

<html>

<head>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗里曼的小伙伴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值