精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-06-07
Pushlet 技术实现,服务器推送,客户端定时监听。
因为涉及到读数据库,如果频率比较高,我个人觉得可以把数据缓存,客户端定时监听时读缓存数据,如果有新数据更新,可以写入缓存。 |
|
返回顶楼 | |
发表时间:2013-06-08
请问下客户端监听,在java有什么相关技术可以实现,请提供参考!
|
|
返回顶楼 | |
发表时间:2013-06-08
有好几种模式的, 最完美的当然是WebSocket,但是服务器、客户端都要求比较新。
如果满足不了, 相对简单并及时的方式是 CometD模式, 即客户端向服务器端建立长连接, 服务器端挂着, 等到有内容才返回内容, 但是标准的请求-响应模型(和WebSocket的区别)。 详情你可参考下: http://www.ibm.com/developerworks/cn/views/web/libraryview.jsp?view_by=search&sort_by=Date&sort_order=desc&view_by=Search&search_by=%E5%8F%8D%E5%90%91+Ajax+%E9%83%A8%E5%88%86&dwsearch.x=14&dwsearch.y=15 |
|
返回顶楼 | |
发表时间:2013-06-27
对浏览器没有要求的话.
尝试下websocket. 可以解决你的问题。 |
|
返回顶楼 | |
发表时间:2013-07-02
如果想要实现方式,推荐两种我用过的:
1. pushlet 框架, java中的实现。依赖HttpServlet. 2. node.js + socket.io模块 之前用的pushlet,后来给予node.js自己写了一个简单的服务: node.js 服务器端 https://github.com/lvjian700/node-pusher java 客户端: https://github.com/lvjian700/pusher4j iOS 客户端最近会出 关于服务器推送的解决方案: 第一种,最传统的轮训(polling)。轮训也分两种: 1. 定时ajax轮训,或者定时iframe轮训(这个好懂不解释了) 2. 一定策略的轮训: 基于定时轮训,如果多次轮训没有查询到数据,之后增加轮训间隔时间。一旦有数据反馈,轮训间隔回复到正常值 (适合邮件类的应用) 第二种,pulling 使用ajax请求模拟长连接。 请求一次服务器,服务器返回后立刻发次下一次请求。 在请求时带上keep-alive参数。(HTTP 1.1规范默认使用keep-alive) 这类框架: pushlet DWR 第三种, HttpStream: ajax请求的时候,responseStatus=3的时候开始接受数据。(在我调研的时候IE8不支持, IE8之后浏览器没试过) 支持的浏览器: Safari, Chome, Firefox. 第四种, FlashSocket/Applet/ActiveX 内嵌插件实现socket链接。 2012 ruby conf china 叶丁丁分享的Realtime很棒,推荐阅读: https://speakerdeck.com/sishen/real-time-web |
|
返回顶楼 | |
发表时间:2013-07-03
最后修改:2013-07-03
楼上这哥们写的方案真不少啊,如果楼主项目中的浏览器能支持HTML5、web服务器能支持web socket规范的那用web socket也不错,我前段时间写过一个例子。http://tyrion.iteye.com/blog/1868654
|
|
返回顶楼 | |
发表时间:2013-07-03
Tyrion 写道 楼上这哥们写的方案真不少啊,如果楼主项目中的浏览器能支持HTML5、web服务器能支持web socket规范的那用web socket也不错,我前段时间写过一个例子。http://tyrion.iteye.com/blog/1868654
以前研究的时候顺带都了解了。 每种推送方式试用场景不同。 之前很难想象Twitter Web页面竟然用的轮询。 但是Twitter API 提供的是 HTTP Streaming。 |
|
返回顶楼 | |