查看文章 |
被迫开始用飞信(Fetion),痛苦啊,这玩意儿开发了几年(飞信博客上一家伙说参加飞信项目两年了),而且用的是.NET(工作量要比C++小了去了),居然这么烂,也算是个奇迹了。。。。自己找点乐子,分析飞信的通信协议好了。。。这不是什么破解,俺也不是什么什么客,纯属无聊。
抓包看了一下,飞信是用了混合协议的:
1、基于HTTP(XML Web Services吧?)进行获取系统配置、更新程序、注册用户 2、基于HTTPS进行登录时密码验证 3、应用层协议是SIP协议,但不是标准的,估计是自创的?所有交互过程如发消息、短信通过SIP协议进行。
1.TCP承载方式:连接服务器(目前是221.130.45.203)的8080端口,这时在客户端的“网络设置”中显示的是“TCP直接连接”,SIP信令直接就放在TCP的包中。 因为是TCP和HTTP承载,所以其包格式是非常清楚的,那么注意力就可以直接放到SIP协议或SIP信令上,详细的内容稍后再写。 总的来说,飞信协议是比较简单的,不对,准确地说法是比较规范和清晰,但协议本身是复杂的,另外: 2.协议效率比较低,我加了近200人,一次登录过程要传递的数据量居然超过了230K,我靠。 3.状态有问题,presence处理得不太好好象,我在线别人却看到我离线,真是奇怪,而且一会儿发一个presence一会儿发一个,讨厌啊。 BTW: RFC在这里看:http://www.faqs.org/rfcs/,太方便了,就是关于SIP的多得看不过来。 |

