是不是只能每隔一段时间用ajax请求或发送数据?
这样对数据库负担是不是太大了,有没分表的必要。

解决方案 »

  1.   

    还有一点,这个应该改用服务器推送技术,而不是你的ajax定时去请求。
      

  2.   

    不懂,不过要是按楼主说的每隔一段时间发送请求的话,那就没有及时性了,中间就会有等待过程.
    可以先看看IM原理
    http://blog.csdn.net/DreamTww/archive/2009/10/04/4632174.aspx
      

  3.   

    服务器推是不是
    也是用ajax去请求,不过可能请求保持的时间会比较长,然后服务器端用刷新输出缓存的方式将数据实时输出到客户端。等请求过期的时候再一次请求。
    感觉如果是这样的话数据库的压力其实是一样的。
      

  4.   

    HTTP是无状态的连接, 服务器是不会去主动请求客户端,所以,在作为PHPer,在实现上只能依靠客户端拉数据的方式。也就是定时对服务器发送请求。
    至于分表,到一定程度是需要的。
    以前考虑过这个,不过没去实现,感觉不太值。
    不妨考虑flash+PHP
    利用as的事件侦听,这个倒是挺好实现的。
    用socket,不过我没详细考虑过数据库的存储。只是考虑了实时聊天。楼下补充!
      

  5.   

    flash来做im前端效果应该不错。
      

  6.   

    by theforever_csdn:
    很多在线聊天室开发出来在运行,你可以看看前台代码,基本都是用AJAX。减轻服务器压力的关键在于对信息的保存条数和保存地点。即使是考虑到离线时他人发来留言的问题,其实留言数量也不会有多少条。而且只在上线时去留言表取一次,上线后开始的会话可以存到APPLICATION里,考虑到提取刷新不同步的问题,APPLICATION里对每组会话不能只保留最后一条,可以保存最后三条(已经足够了),对方提取后即删除所提取的信息,如果保存信息时发现三四条仍是满的一条没被提走,则对发信息者提示“网络堵塞,稍后再发”(和我们平时用QQ基本一样),如果发现对方一定时间没更新连接,则认为下线。APPLICATION的位置,访问很快。且信息条数少,反映更快,而对内存的占用也不会很大(对服务器几G的内存来说算问题吗)。<- theforever_csdn