PushLet

最近一款App需要用到推送技术,简单总结一下使用过程:

 

 

两类解决方案:

       使用套接口传送信息,需要客户端配置

       基于HTTP长连接

 

使用时需要考虑的因素:

       客户端如何接收,处理信息,如果是Web应用,应该如何结合返回页面并向用户呈现。

       客户与服务器端通信的信息格式,采取怎样的出错处理机制。

       Web应用中的浏览器兼容问题

 

基于客户端套接口的“服务器推”技术简单分类:

 

  传统轮询:修改Html文件头,<META HTTP-RQUIV="Refresh" CONTENT=12>实现浏览器的定时请求(polling)。服务器无需配置,但服务器压力大,带宽损失严重,用户体验度差。

 

   ajax轮询:Ajax定时(通常使用 JavaScript 的 setTimeout 函数)请求增量式的更新,但请求时间间隔设定是一个问题。只需要服务器简单配置,带宽占用不高,但服务器压力没有减少,是较长见的反推技术。

 

   comet:长连接机制 (long lived http)。一次请求后,服务器将挂起请求对像直到有了数据才销毁。它有着较好的性能和实时性,但挂起对象占用了一些服务器资源,也丧失了无状态高并发的特点。

        java appet:在客户端使用 Java Applet ,通过 java.net.Socket java.net.DatagramSocket java.net.MulticastSocket 建立与服务器端的套接口连接,从而实现 服务器推送

 

        使用HTML5的内置WebSocket.或许这是真正的ServerPush,服务器可以主动推数据,每次的请求Header也只有2Byte大小.

        关于WebSocket详解:http://ariesx.iteye.com/blog/1959988

 

 

 

其它技术:     

        flash xml socket:这种方案实现的基础是:一、 Flash 提供了 XMLSocket 类。二、 JavaScript Flash 的紧密结合:在 JavaScript 可以直接调用 Flash 程序提供的接口。

 

    优点:实时性好(消息延时小);性能好(能支持大量用户)         

 

    缺点:因为 XMLSocket 没有 HTTP 隧道功能, XMLSocket 类不能自动穿过防火墙;

 

           因为是使用套接口,需要设置一个通信端口,防火墙、代理服务器也可能对非 HTTP 通道端口进行限制;

           应用:网络聊天室,网络互动游戏。

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值