现有IM协议关于建立对话分析。
SIP协议:
http://tools.ietf.org/html/rfc3261#page-69
http://hi.baidu.com/nathan2007/blog/item/1ee3823422ebbdb6d1a2d376.html
通过分析,大概过程是:
Invite -> ok 绑定了一个信道,之后对话。因此是现有dialog,之后才能对话。
在这点,可以看出原来的MyFetion丢失了这部分协议,只能接受对方发起的会话协议。
也可以看出,服务器需要状态持久一个会话。同时分析超时。
而查看腾讯的QQ协议,似乎没有一个建立会话的过程。
而MEssageID = OutPacket.GetNextSeq() 是个序列。因此没有会话持久的设计。
Msn的设计和SIP几乎一致。不过建立了会话之后,开启了一个新的socket。
总结,协议的发展方向都是需要先建立会话,然后再对话,这样对服务器的性能影响最小。