Web 消息传递服务使用 Bayeux 协议来进行发布/预订通信。仅支持 Bayeux 长轮询传输选项。在 Web 消息传递配置文件中配置了 Bayeux 通信的多个方面。下面列示了这些配置选项。
在 Bayeux 协议中,在能够提供消息之前,服务器不会完成 HTTP 请求。longPollTimeout 配置选项指定在服务器完成请求之前将让请求保持打开状态的时间。完成请求之后,除非设置了 clientPollInterval,否则 Bayeux 客户机就会立即重新连接至服务器。设置这些值时应留意。如果 longPollTimeout 值设置为 0,那么必须将 clientPollInterval 值设置为一个合理值,以避免服务器中充满重复的 Bayeux 连接请求。
名称: | longPollTimeout |
---|---|
必需或可选: | 可选 |
数据类型: | 整型 |
允许值: | 以秒为单位指定的 0 到 300 范围内的值 |
缺省值: | 30 秒 |
描述: | 指示服务器让 HTTP 请求保持打开状态多长时间以等待消息。按照定义,长轮询要求在合理时间内完成 HTTP 请求。客户机通常是请求关闭时就立即重新连接。 |
clientPollInterval 指定客户机在两个 Bayeux 连接请求之间需要等待的时间。如果设置了 clientPollInterval,那么使用 Bayeux 建议机制来指示客户机进行重新连接的频率。如果将 longPollTimeout 设置为 0 并且将 clientPollInterval 设置为正值,那么表示将使用传统轮询来连接至服务器。根据您要开发的应用程序类型,传统轮询可能是用来连接至服务器的首选方法。通过配置传统轮询,很容易连接至服务集成总线以传递消息。
名称: | clientPollInterval |
---|---|
必需或可选: | 可选 |
数据类型: | 整型 |
允许值: | 大于或等于 0 的值(以秒计)。此值必须小于 bayeuxSessionTimeout。 |
缺省值: | 0 |
描述: | 指示客户机按指定的时间间隔进行重新连接。使用 Bayeux 重新连接时间间隔建议机制来指示客户机执行重新连接的频率。此客户机连接必须支持 Bayeux 重新连接时间间隔建议机制,此功能才有效。客户机也可以按照它们自己的时间间隔进行连接。 |
bayeuxSessionTimeout 指示服务器在废弃任何客户机会话信息之前将等待客户机进行重新连接的时间。 客户机显式调用 Bayeux 断开连接操作,但是并不能保证客户机将调用断开连接。缺省值为 90 秒,它反映 Bayeux 会话的生命周期将较短。应该将此值设置为远大于 clientPollInterval,以保证客户机能够成功地进行重新连接并继续接收消息。
名称: | bayeuxSessionTimeout |
---|---|
必需或可选: | 可选 |
数据类型: | 整型 |
允许值: | 大于 10 的值(以秒计)。 |
缺省值: | 90 秒 |
描述: | 指定服务器在废弃客户机的信息之前将等待客户机进行重新连接的时间。如果在 Bayeux 会话到期之后客户机以同一个客户机标识进行重新连接,那么使用 Bayeux 重新握手建议机制来启动新的 Bayeux 会话。 |
useDistributedSession 用于跨集群中的所有成员共享 Web 消息传递会话信息。如果 useDistributedSession 属性设置为 true,并且 autoReinit 或 useDurable 配置属性也设置为 true,那么 Web 消息传递操作将能够在另一服务器上恢复。
名称: | useDistributedSession |
---|---|
必需或可选: | 可选 |
数据类型: | 布尔值 |
允许值: | true 或 false |
缺省值: | false |
描述: | 指定应该跨集群中的所有成员共享 Web 消息传递会话信息。当服务器进行故障转移或者会话亲缘关系失败时,可以在新服务器上恢复 Web 消息传递操作。如果 useDurable 配置属性设置为 true,并且使用分布式会话,那么可以在新服务器上恢复预订并最大程度地降低消息丢失程度。如果 autoReinit 配置属性设置为 true,并且使用分布式会话,那么将重新初始化预订,但在预订丢失与预订重新初始化之间,可能会丢失消息。跨所有集群成员共享的会话信息包括:预订的主题列表、会话标识、bayeux 会话属性以及服务集成总线属性。 |