公司的一个web项目,让我做聊天室这一模块,可我完全没有做web开发的经验。请问一下应该怎样统计一个聊天室房间人数?是不是统计有多少个会话连接到这个聊天室房间呢?另外,要在聊天室首页显示人数最多的前五个房间,应该怎样实现呢?我只知道数据库里有select top 5 from 的方法,那么房间的人数多少的数据都应放在数据库里面,然后每位注册用户和游客访问或离开聊天室就对数据库进行更新吗?这样做是不是对数据库更新太频繁了点?再问一个问题,我看见有的网站的聊天室的各个房间使用不同的URL地址,而有的网站的各个聊天室房间都使用相同的URL地址,只是端口号不一样。这两种方式哪种好呢?

解决方案 »

  1.   

    这件事情基本不应频繁和数据库发生关系,除非还有其它特殊要求。所以聊天室对象及其访问者id及登录时间、最后访问时间等信息(可以组合成为另一个对象)都应该主要放在内存中。通过线程定期将非活动的用户信息从内存中删除。当然,当聊天室很多的时候,上述数据可以按照聊天室及其自身用户属性来进行完全或者分组分解。每个聊天室只是定时(比如一分钟,甚至几分钟)才更新一次数据库,将自身人数写入数据库。聊天室UI目录服务器,则通过缓存+定时更新从数据库刷新这种变化。
    欢迎大家来我的博客作客:http://blog.csdn.net/aafshzj/
    我正在写一系列关于AAF组件框架的文章。该框架能对开发工作提供很多帮助,并极大地提高开发效率。希望大家看一看并提出宝贵建议。