黑莓推送机制-(2)数据推送命令格式

BlackBerry应用平台上的数据推送是由应用服务器发起的,应用服务器根据应用逻辑进行判断,发现有数据需要推送到用户的手持设备端时连接MDS/BES服务器进行数据推送。应用服务器与MDS/BES服务器的连接方式为HTTP连接,通过HTTP连接发送一个POST请求,将需要推送的数据作为POST的内容。

 

POST请求的URL格式为:

http://BES_HOST:BES_PORT/push?DESTINATION=DESINTATION_ADDRESS&PORT=HANDHELD_APPLICATION_PORT&REQUESTURI=/

 

下面是请求中各参数的说明:

参数

描述

BES_HOST

BlackBerry Enterprise Server 的服务器名或者是IP

BES_PORT

BlackBerry Enterprise Server的推送端口,一般是8080

DESTINATION_ADDRESS

用户的邮件地址或者是设备码 (PIN)

HANDHELD_APPLICATION_PORT

BlackBerry 手持设备需要帧听的端口

 

 

也就是说,应用服务器通过BES_HOSTBES_PORT指定需要连接的MDS/BES服务器和需要连接的端口。BES服务器安装后缺省使用8080作为推送端口,所以推送应用开发人员一般情况下只需要了解MDS/BES服务器的服务器名或者是IP地址就可以了。如果BES管理人员在安装服务器后修改过推送端口,则需要告知开发人员使用新指定的端口。

 

推送URLpush?后面的部分用于指定数据的接收者和手持设备需要帧听的端口。DESTINATION_ADDRESS用于指定数据的接收者,可以使用该用户的邮件地址或者是该用户手持设备的PIN码。HANDHELD_APPLICATION_PORT用于指定手持设备需要帧听的端口,这里使用的端口只是一个约定,要求在手持设备上运行的程序从这一端口中读取数据。

 

除了URL参数以后,在推送过程还可以使用一些规定好的HTTP头指定该推送的属性,HTTP头参数表如下:

HTTP

描述

X-RIM-Push-ID

用于指定该消息的ID,该ID需要是一个唯一值,可以用于取消推送或者是查看推送的状态。

X-RIM-Push-NotifyURL

用于指定确认消息的接收URL

X-RIM-Push-Reliability-Mode

用于指定推送的可靠性。

X-RIM-Push-Deliver-Before

用于指定推送数据的最迟推送时间。

X-RIM-Push-Priority

用于指定推送数据的优先级。

 

X-RIM-Push-ID属性一般建议使用URL和编号结合的方式,123@blackberry.com。为了更好地控制数据的推送,一般不建议使用随机数作为推送ID。使用统一的ID生成方式更有利于推送数据的取消和状态确定。注意,如果没有指定该参数的话,MDS/BES服务器会自动生成一个唯一的ID,这样就无法在应用服务器上使用这个ID对特定的推送数据进行处理了。此外,推送ID不能以@ppg.rim.com结束。

 

X-RIM-Push-NotifyURL属性通过URL的形式指定了确认消息的接收地址,如http://testingserver:7778。指定了这一属性后,MDS/BES服务器会将推送的确认消息以HTTP请求的形式发送到指定的服务器。也就是说应用开发者需要开发一个HTTP服务器端程序监听指定服务器的指定端口(上例中则是服务器testingserver7778端口),通过这个服务器端程序获取确认消息。在确认消息中会包含HTTPX-RIM-Push-IDX-RIM-Push-Status,通过X-RIM-Push-ID告知监听者是哪条推送数据的确认消息,通过X-RIM-Push-Status指明该数据推送的结果,200代表推送成功,400代表推送失败。现实环境中对于数据推送是否成功不能简单地以结果200或者是400进行判断,需要结合很多因素进行判断,本文的后续章节会详细描述。

 

属性X-RIM-Push-Reliability-Mode用于指定推送的可靠性,值可以是TRANSPORT或者是APPLICATION,另外有一个值APPLICATIONPREFERRED涉及更复杂的场景,这里不做描述。如果指定可靠性为TRANSPORT则以数据到达手持设备准,本文称之为非应用依赖。如果指定可靠性为APPLICATION则以数据被手持设备端应用接收为准,本文称之为应用依赖。对于不同可靠性设置,本文的后续章节会有详细描述。总体而言,非应用依赖的推送更适合于广播性质的不要求应用一定收到数据的场景,而应用依赖更适合于点对点的要求应用一定要收到数据的场景。

 

属性X-RIM-Push-Deliver-Before用于指定数据推送的最后时间,如果在指定时间前该数据仍无法被成功推送到手持设备端,则该数据会被视作过期而被MDS/BES服务器丢弃。

 

属性X-RIM-Push-Priority用于指定推送数据的优先级,指定推送数据的优先级并不能加快数据的推送,指定优先级的结果是推送数据到达手持设备端的行为不同。可以选择的值有:none (缺省)low medium high。如果指定优先级为lowmedium 或者是 high,则用户只是接收到数据,如果指定优先级为high,则用户在接收到数据后还会看到提示对话框。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值