XMPP通信小结(1)
?? ? ? ?我们想制做一个比较完美的IM系统(即时通信系统),那么就需要将系统的整个信息交互的流程从头到尾的梳理清楚。然要进行通信,用“文本”+“\r\n”作为一句话的形式就太不规范了,不规范的信息可能导致未知的错误,那么该怎样规范起来呢?
?? ? ?下面对XMPP通信协议和IM交互流程两部分进行小结。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (一)XMPP通信协议
?? ? ??通信,指两者通过某种行为或媒介进行的信息交流与传递,即使用某种媒质,将信息从某方准确安全传送到另方。很显然,“文本”+“\r\n”这样规定是一句话的形式是不安全的,例如:String s = "hello" + "\r\n" + world !";
<type>chat</type> <sender>用户名</sender> <reciver>密码</reciver> <text>文本消息内容</text></msg>
?
?? ? ?这样,通过XMPP协议,自定义标记语言,规定规范的消息结构,软件相互间的交流就非常规范了。
?
?
???? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (二)流程
?? ? ? ? ?无论是这个项目还是其他的,流程都非常重要。流程图之于程序就如同提纲之于文章。梳理流程,我认为需要从两方面着手,考虑六个问题。
?? ? ? ? ? 其一,先做什么,接着做什么,最后做什么; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 其二,是谁做了什么事,传递了什么信息给谁,产生了什么结果。?? ? ? ? ??
当分析清楚具体的流程后,整个程序的框架便搭建好了,同时,消息的结构也就可以确定了。至于代码,“翻译”一下就实现了。
1 楼 witcheryne 2011-07-21 你们用什么服务器和客户端?