= Android推送服务接口设计2 = 设计目标 ||目标||范围||约束||开发时间|| ||消息群发[[BR]](或单点)||sdk[[BR]]server[[BR]]魔方||[[BR]][[BR]][[BR]][[BR]]TPS>1W[[BR]]单台机5分钟300万次的响应能力[[BR]][[BR]][[BR]][[BR]]||4周以内[[BR]]预计10月底完成|| 接口地址: {{{ http://p.imofan.com/pull/{app_id}/{ts}/{dev_id}/{ver_code} }}} 接口请求参数定义: ||参数名||说明|| ||app_id||应用的唯一标识id的列表,由魔方系统生成|| ||ts||时间戳列表|| ||dev_id||设备的唯一标识,采用魔方数据分析的dev_id|| ||ver_code||对app_key、dev_id进行不可逆加密后的校验码|| 注意: * 参数必须用POST方式提交 * 平台提供给客户端的api包发出请求的user-agent固定为:imofan pns client,若判断user-agent不匹配,则返回404 '''报文约定''' 请求报文:无 响应报文JSON格式定义: {{{ { "messages": [ { "msg_id": 3516, "app_key": "b5d3828499d0590600000006", "app_ver": ">=320", "os_ver": "<2.2", "content":"好消息...Android客户端已经可以推送消息了!" "ts":201210101156 }, { "msg_id": 3517, "app_key": "b5d3828499d0590600000001", "app_ver": ">=320", "os_ver": "<2.2", "content":"解放军已经实际控制钓鱼岛" "ts":201210101157 }, ... ] } }}} 响应报文定义说明: ||返回值||说明|| ||is_new||是否有新消息,为1表示有新内容,为0表示没有新的消息|| ||messages||消息列表|| ||msg_id||消息id|| ||app_key||消息针对的应用appkey|| ||app_ver||消息针对的应用版本,可用>320、>=320、=320、<=320、<320五种形式,其中320为Android应用version code,必须是整数值|| ||os_ver||消息针对的操作系统版本,可为>2.0、>=2.1、=3.0、<=4.0、<4.1五种形式,其中比较符后面的数字只能是两段式格式,不做更细的划分|| ||content||消息正文|| ||ts||消息的时间戳|| 服务端设计思路: 使用netty提供服务,根据请求报文中的app_key以及时间戳来决定返回的消息。