<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>bomb_football</title>
    <description></description>
    <link>http://bomb-football.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>基于pushlet做的一个web im总结</title>
        <author>bomb_football</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://bomb-football.javaeye.com">bomb_football</a>&nbsp;
          链接：<a href="http://bomb-football.javaeye.com/blog/215580" style="color:red;">http://bomb-football.javaeye.com/blog/215580</a>&nbsp;
          发表时间: 2008年07月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>前段时间，做了一个web im。当时首先考虑基于<a href="http://www.xmpp.org/extensions/" title="XMPP" class="quote_title">xmpp</a>协议做，可是时间比较紧，不可能在规定的时间里做好服务器端，而一些基于xmpp协议开发的即时消息服务器都是收费的，所以只好否定了这个方案。后来在网上找了一下，发现了一个开源的东西<a href="http://www.pushlets.com/" title="Pushlet" class="quote_title" target="_blank">Pushlet</a>&nbsp;。它是comet技术的一种实现，利用一个servlet,将服务器端的动态对象主动推送到客户端浏览器。详细内容我就不在这里说了，网上又一篇<a href="http://www.matrix.org.cn/resource/article/2007-01-16/bcc2c490-a502-11db-8440-755941c7293d.html" title="Think in Pushlet" class="quote_title" target="_self">Think in Pushlet</a>的文章写得非常详细。以下是我的一些心得体会，与大家分享分享：</p>
<p>1、pushlet虽然名字带了一个push，但实际上只实现了poll，需要客户端不断的轮询服务器，如果大量的用户同时在线的话，那么服务器开销会很大，响应时间也会变得很长。网上搜了一下，也没有什么好的解决方案。jetty的Continuation到是提供了一种思路，但这比须把应用部署在jetty上面。</p>
<p>2、用JS写了一个队列用来存放收到的消息，然后用每个发送方作为key,消息队列做为value,存放在自定义的一个hashtable里面。</p>
<p>3、由于时间比较紧，很多js代码都没考虑不同浏览器下是否支持的问题，比如为了不让客户端的拦截工具把消息窗口拦截，用了showModelessDialog来打开窗口，但是这个方法firefox又不支持。因此这后这个web im就只能用在IE 6以上的浏览器下面。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://bomb-football.javaeye.com/blog/215580#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 16 Jul 2008 22:43:01 +0800</pubDate>
        <link>http://bomb-football.javaeye.com/blog/215580</link>
        <guid>http://bomb-football.javaeye.com/blog/215580</guid>
      </item>
  </channel>
</rss>