J2ME飞信协议分析(初稿)

J2ME飞信协议用的是HTTP协议,用POST的方式请求数据,数据采用统一的UTF-8编码,并通过PingPong 维持Session会话。

首先 第一步是向http://nav.m161.com.cn/geadapteruri.aspx请求服务入口,请求时向服务端Post一些客户端参数,如果参数正确服务端将响应服务入口地址,响应数据为XML流,如下所示。

 

<?xml version="1.0" encoding="utf-8" ?>
<Root xmlns="http://tempuri.org/DateExchange.xsd">
	<Response>
		<Error>0</Error>
		<Memo/>
	</Response>
	<Uri>
	http://liveja.amigo.bjmcc.net/transfer.vurl
	</Uri>
</Root>

XML中包含服务入口 http://liveja.amigo.bjmcc.net/transfer.vurl即为服务地址。
接着需向此URL请求并带上客户端版本和客户端软件类型信息(请求方式POST),如果正常服务端会响应数据包,数据包包含维持会话Session的ID 、用户手机号、用户信息、飞信说明等内容,下一步需对数据包进行解析,并把一些有用的信息提取出来,它们是用字符'\002'进行分割。
为了维持会话,下次请求的URL必须带上这个Session ID,否则无法进行下一步请求,如获取的ID为0f850fac-8f99-405f-ab62-5e8ece83724f 那么下次需请求的URL为http://liveja.amigo.bjmcc.net/transfer.vurl?guid=0f850fac-8f99-405f-ab62-5e8ece83724f

 

数据包格式

 

HTTP请求数据包用UTF-8编码,每个包有两个部分Header和Payload,Header有4个字节,前三个字节为整个数据包长度(Payload长+4)第一个字节为长度>>16位,第二个字节为>>8位,第三个字节不位移,第四个字节表示处理类型,如一些初始化命令退出等,Payload是可变长的。

 

类型处理(第四个字节byte)


1:初始化请求
3:初始化响应处理,有导航功能
4:设置用户PingPong等侍时间,客户端更新等
5:第一次用户登录
6:Ping时发送的数据包
7:登出
8:发送聊天信息
9:接收新信息
10:删除用户
11:用户聊天Session
12:更新好友列表
16:服务初始化

 

导读

S40平台播放多媒体时内存优化 http://fonter.iteye.com/blog/413022

开源一个J2ME解析类 http://fonter.iteye.com/blogs/409830
手机中的重定向问题及处理 http://fonter.iteye.com/blog/400836
J2ME如何通过cmwap直接访问互连网 http://fonter.iteye.com/blog/400868
J2ME开发中由WAP网关带来的cookie问题 http://fonter.iteye.com/blog/399105
安装JAD时提示JAD无效原因之一 http://fonter.iteye.com/blog/400888
J2ME网络交互之优化 http://fonter.iteye.com/blog/405137
解决Eclipse无法调试J2ME程序的配置方法 http://fonter.iteye.com/blog/405697

准备做个PushMail(推送邮) http://fonter.iteye.com/blog/408368

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值