分享

通用WebIM聊天引擎的讨论与实现

 hehffyy 2010-07-19

现在WebIM可谓非常流行,其中已实现WebIM的厂商包括大名鼎鼎的sohu,Tencent QQ,Microsoft MSN,Google Gtalk,新浪,alibaba的淘宝旺旺,很多很多,基于WebIM的聊天引擎设计思路无非以下几种:

  1. Ajax无刷新交互,设计一种时间间隔定期获取数据(如先每5秒刷新一次,再‘按5,10,15,……刷新一次获取数据,目前利用这一思路实现聊天引擎的开源产品很多,大家可以自己到open-open网站查阅)
  2. 基于Pushlet技术的聊天引擎的实现
  3. 基于Comet技术的聊天引擎的实现
  4. 基于Jetty服务器的Comet技术的聊天引擎的实现
  5. 基于XMPP协议的聊天引擎的设计与实现(可以利用Flash或Ajax或Js与Jabber服务器交互)

目前利用的最多的是通过Flash的XmlSocket+JS与网页的聊天UI进行交互或直接利用Flash界面(可基于Flex的AIR或其他等),本文重点介绍第5种聊天引擎的设计与实现,这也是大名鼎鼎Google的Gtalk采用的协议,关于XMPP协议,大家可以查阅http://www.官方网站,先想听听大家的意见,大家一般实现WebIM是怎么来设计与实现的呢?也是用开源的产品么?大家一起来讨论下,我这里先抛砖引玉一下:)

评论
9 楼 myclover 2009-03-19   引用
xmpp协议的工作原理大概是怎么样的呢?
哪个晓得不啊?谢谢
8 楼 achun 2009-03-09   引用
XMPP中网关承担着与异构即时通信系统的互联互通
我想问的是,大家觉得,客户双方直接通过UDP通讯可能么?
估计穿透内网是个大问题
7 楼 bohemia 2009-02-20   引用
Ajax无刷新交互,设计一种时间间隔定期获取数据(如先每5秒刷新一次,再‘按5,10,15,……刷新一次获取数据,目前利用这一思路实现聊天引擎的开源产品很多,大家可以自己到open-open网站查阅)
这个问题比较明显,不多说了.

基于Pushlet技术的聊天引擎的实现
到官网看下下Pushlet的框架,作者提到要不断的升级更新,支持各种协议.
现在应该是采用client-pull方式实现Comet;

基于Comet技术的聊天引擎的实现
基于Jetty服务器的Comet技术的聊天引擎的实现
目前Jetty和Tomcat6貌似都有类似comet的支持了. 等Servlet3技术出来后,估计慢慢都支持了.

基于XMPP协议的聊天引擎的设计与实现(可以利用Flash或Ajax或Js与Jabber服务器交互)
使用xmpp的Flash Socket通讯的 不知道实现起来难度大不大. 我倒想用用这个方式,不过感觉没直接jetty+dojo实现cometd来做得方便.


6 楼 bohemia 2009-02-20   引用
决定使用
Dojo+Jetty Cometd+Jetty Continuation+Bayeux协议 方式来实现一个.
不知道结果怎样.

5 楼 cucumber 2008-09-22   引用
最近也在研究相关的内容,关注下。。。
4 楼 kongshanxuelin 2008-09-21   引用
jianfeng008cn 写道

web版本为什么不能实现桌面版的所有功能呢?能否介绍下。

Web版目前开源的基于Openfire的已经有音视频聊天功能了,使用Red5 Server,而且Web版一般也不会注重实现桌面版的所有功能的,一般注重简洁好用就行了
3 楼 jianfeng008cn 2008-09-20   引用
web版本为什么不能实现桌面版的所有功能呢?能否介绍下。
2 楼 comasp 2008-09-20   引用
openfire好像有一款 webim。不过单机版的还比较强大。
web版本的 只能聊天。
1 楼 wangjinpeng 2008-09-20   引用
message gateway+activeMQ+jetty bayeux server+JMS+dojo cometd

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多