`
rikugun
  • 浏览: 351046 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Bayeux 协议学习

阅读更多


官方文档

名词解释
BC: bayeux 客户端
U: User Agen
P: proxy 代理
O: 普通的HTTP SERVER
BS: bayeux 服务


客户端到服务的的事件传播
引用

BC ---------- U ---------- P ------------ O ---------- BS
| --M0(E)--> |                      |                        |                     |     //消息(事件)
|                    | ---HTTP request(M0(E))-->     |                     |
|                    |                      |                        | --M0(E)-->  |
|                    |                      |                        | <---M1---- |    //服务端响应
|                    | <---HTTP response(M1)----   |                     |
| <---M1---  |                      |              |            |
|                    |                      |              |            |


服务端到客户端的事件传播
引用

BC ---------- U ---------- P ------------ O ---------- BS
| ---M0--->  |            |              |            |                   //联接服务
|            | --- HTTP request(M0) ---> |            |
|            |            |              | ----M0---> |
~            ~            ~              ~            ~ wait            //等待
|            |            |              | <--M1(E)-- |              //事件
|            | <--HTTP response(M1(E))-- |            |     //响应
| <--M1(E)-- |            |              |            |
~            ~            ~              ~            ~            


循环联接:
客户端连接到服务端后,一直阻塞等待服务端的响应,收到响应后,断开本次连接,然后重新联接服务端继续等待
引用

BC ---------- U ---------- P ------------ O ---------- BS
| ---M0--->  |            |              |            |              //连接服务
|            | --- HTTP request(M0) ---> |            |        
|            |            |              | ----M0---> |
~            ~            ~              ~            ~ wait
|            |            |              | <--M1(E)-- |               //触发事件
|            | <--HTTP response(M1(E))-- |            |    //响应
| <--M1(E)-- |            |              |            |           
| ---M2--->  |            |              |            |              //重新连接
|            | --- HTTP request(M2) ---> |            |
|            |            |              | ----M2---> |
~            ~            ~              ~            ~ wait


流式连接:
和上面的基本相同只是收到响应后不断开连接,一直保持连接状态
引用

BC ---------- U ---------- P ------------ O ---------- BS
| ---M0--->  |            |              |            |
|            | --- HTTP request(M0) ---> |            |
|            |            |              | ----M0---> |
~            ~            ~              ~            ~ wait
|            |            |              | <--M1(E0)- |
|            | <--HTTP response(M1(E0))- |            |
| <--M1(E0)- |            |              |            |
~            ~            ~              ~            ~ wait
|            |            |              | <--M1(E1)- |
|            | <----(M1(E1))------------ |            |
| <--M1(E1)- |            |              |            |
~            ~            ~              ~            ~ wait


双连接:
将请求分2个HTTP连接,这样就可以异步处理。 req1的响应可能在req0之前
引用

BC ---------- U ---------- P ------------ O ---------- BS
| ---M0--->  |            |              |            |
|            | ------ req0(M0) --------> |            |
|            |            |              | ----M0---> |
~            ~            ~              ~            ~ wait
| --M1(E1)-> |            |              |            |
|            | ----- req1(M1(E1))------> |            |
|            |            |              | --M1(E1)-> |
|            |            |              | <---M2---- |
|            | <---- resp1(M2)---------- |            |
| <---M2---  |            |              |            |
~            ~            ~              ~            ~ wait
|            |            |              | <-M3(E2)-- |
|            | <-----resp2(M3(E2))------ |            |
| <-M3(E2)-- |            |              |            |
| ---M4--->  |            |              |            |
|            | ------req3(M4)----------> |            |
|            |            |              | ----M4---> |
~            ~            ~              ~            ~ wait

分享到:
评论
3 楼 lee4321 2010-10-07  
拜读,问下weblogic支持两种 一种loog-pooling, 还有callback-pooling是上面哪两种传播方式啊,好像dojo客户端支持的只是loog-pooling,,,难道loog-pooling就是所谓的流式连接
2 楼 rikugun 2009-06-02  
to 传说の黄花菜

有个,你下官方文档回来看就是了,另外还有jquery的插件支持哦.
服务器端glassfish也支持
1 楼 传说の黄花菜 2009-06-02  
不知道该书有Dojo/Cometd/Bayeux 方面的内容 本次项目需要用到这方面的相关协议

相关推荐

    jquery-Bayeux数据推送

    源码中包含对Bayeux协议的解析、连接管理、事件处理等功能,可以学习到如何利用Ajax技术实现长连接,以及如何设计高效的事件监听和处理。 总结来说,jQuery-Bayeux是实现Web实时通信的强大工具,它简化了Bayeux协议...

    cometd-1.0.0rc0 源码

    CometD是一个开源的、基于Bayeux协议的JavaScript库,用于实现服务器推送技术(Server-Sent Events)。它使得Web应用程序能够实现实时通信,即服务器可以主动向客户端推送数据,而无需客户端频繁地发送请求。这个...

    cometd-3.0.0.beta2-distribution.tar.gz

    CometD是一个开源的、基于Java的WebSocket和Bayeux协议的实时Web应用程序框架。它提供了服务器推送技术,使得服务器可以主动向客户端发送数据,而不仅仅是响应客户端的请求。CometD的核心理念是通过长连接来实现双向...

    JavaBayeuxCometDChat

    【JavaBayeuxCometDChat】是一个基于Java和CometD实现的实时聊天应用程序示例,它利用了Bayeux协议来实现WebSocket和Ajax的双向通信。这个项目旨在展示如何构建一个高效的、低延迟的实时通信平台,适用于在线聊天、...

    CometD2.x官方帮助手册

    CometD是一个开源的、基于Java的WebSocket和Bayeux协议的实时Web应用程序框架,它使得服务器能够与浏览器或其他客户端进行双向通信,实现高效的推送服务。这个“CometD2.x官方帮助手册”是该技术的离线版文档,包含...

    cometd实例demo

    CometD是一个基于Bayeux协议的开源JavaScript库,它实现了服务器推送技术,允许服务器主动向客户端发送数据,而不仅仅是响应客户端的请求。这个“cometd实例demo”提供了使用CometD的一个实际示例,可以帮助开发者...

    BayeuxTestProcessor:已弃用——移至 testifyProcessors

    通过查看源码,我们可以学习到如何处理`Bayeux`协议的消息交换,以及如何使用`testify`构建复杂的测试场景。 总之,从`BayeuxTestProcessor`迁移到`testifyProcessors`是一个提升测试质量和效率的过程。开发者需要...

    Jetty cometd(Continuation)学习笔记

    Cometd是一种基于Bayeux协议的实时Web通信技术,旨在解决Web应用中的低延迟、双向通信问题。它利用长轮询(Long Polling)或流(Streaming)等技术实现服务器向客户端推送数据,从而创建实时更新的用户体验。 在...

    Atmosphere白皮书

    - **内容**: 介绍了如何在Atmosphere框架中支持Bayeux协议,这是一种常用的实时通信协议。 #### 四、技术栈 - **异步HTTP**: Atmosphere框架的核心在于其异步处理能力,能够高效地处理大量并发连接。 - **Jersey*...

    Comet link

    CometD 支持多种协议(如 Bayeux 协议)和多种服务器平台,如 Java、JavaScript、Tomcat 等,提供了一个统一的方式来处理服务器到客户端的推送。 在 CometD 中,服务器和客户端之间通过长轮询、HTTP 穿透、IFrame ...

    CometDExample:Java Spring Cometd 服务器和客户端示例

    **Bayeux** 协议是 CometD 实现的基础,定义了服务器与客户端之间实时通信的数据格式和交互流程。它支持多种消息类型,如发布、订阅、确认等,确保了可靠的消息传递。 ### 5. CometD 服务器端配置 在 `...

    cometd-java-oort-3.0.0.zip

    在Java编程领域,CometD是一个基于Bayeux协议的开源库,它实现了服务器推送技术,允许服务器主动向客户端发送数据,而不是等待客户端发起请求。CometD 3.0.0版本是其一个重要里程碑,这个版本可能包含了性能优化、新...

    cometd-archetype-spring-dojo-jetty7-2.8.0-RC1.zip

    CometD是一个开源的WebSocket和AJAX双向通信框架,它实现了Bayeux协议,允许服务器主动向客户端推送数据,实现低延迟的实时通信。Spring框架则为这个项目提供了强大的依赖注入和面向切面编程能力,使得服务端组件的...

    ddf-cometd-examples:与DDF Cometd API交互的示例

    CometD 是一种基于Bayeux协议的双向通信框架,用于实现实时的、低延迟的Web应用程序。在"ddf-cometd-examples"项目中,DDF与CometD API的结合为开发人员提供了利用JavaScript实现双向通信和实时数据交换的示例。 这...

Global site tag (gtag.js) - Google Analytics