在内存中建立一块临界资源,里面保存在线人名单.这样的方式只适合于人不多的情况,因为是在内存中所以速度较数据库和文件要快很多,但是内存要大....这个临界资源你可以使用java的单例模式(也就是要创建唯一实例,详见java.util包的Calendar类),创建一块所有程序都能访问到的地方

解决方案 »

  1.   

    刚写了一个,是基于socket的。如果你要,可以发给你。
      

  2.   

    哦,你是要用jsp的时实刷新实现聊天室么?
    上面的程序需要嵌入到applet里。
    原来还写过一个用rmi实现的。
      

  3.   

    anotherleeo(听风看雨) 
    可以发个给我看看吗?谢了。
    [email protected]
    [email protected]
      

  4.   

    我的电子邮箱是[email protected]
      

  5.   

    我也想看看,学习学习!
    我的电子邮箱是[email protected]
      

  6.   

    同意gln的,聊天室一般不用数据库.
    也可以用application对象
      

  7.   

    我也想要代码!谢谢啊。 [email protected]
      

  8.   

    都发了。有问题请发到我的[email protected]邮箱。
      

  9.   

    某个人登录,现在客户端生成session,然后在服务器上的数据库里写上此人的session id,客户端程序每隔一定时间判断,如果超时就通知服务器删除此人的session id,如果要得知所有在线的人,只要查一下服务器上的session id即可。
      

  10.   

    可以用数据库把在线人员输出来的啊,也可以用application或者是Vector向量的吧!
      

  11.   

    踢人?
    断掉他的IP不就OK了?
      

  12.   

    我已经发的程序没有判断同名登陆,今天新加了。
    只要在把新登陆用户加入Hashtable的时候先用这个用户名把相应的socket取出来,判断,如果取出的不为空说明改用户已经登陆。然后从连接的socket的outputstream上写入你重复登陆等信息。然后写入SL:KC。用户端会在显示服务器发出的信息后关闭。
    以上这些做一个聊天室应该足够了吧。
      

  13.   

    发我一份学习学习~谢谢~~
    [email protected]
      

  14.   

    呵呵,把所有用户放在一个vector里,而vector 放在session中,当需要踢人和列出时,同步该对象,进行操作!至于提取重要的话,学习!
    anotherleeo(听风看雨) 
    我也想要一份,我原来做的聊天室是用网页的自动刷新来实现的,希望能学习socket技术!
    [email protected]
      

  15.   

    你可以把用户放在动态链表中,加入一个用户就调用动态链表的add方法,踢一个人就调用remove方法
      

  16.   

    我也想要一份
    [email protected]
      

  17.   

    [email protected]给我一份,谢谢.
      

  18.   

    楼上的都没写出最重要的:如何判断对方已离线
    监听session销毁的话除非对方正常退出,如果用户直接关闭浏览器的话session要过一段时间才销毁
    还有个问题:如果对方不聊天就挂在那,session会否失效?
      

  19.   

    难道没人用JAVA开发过聊天室吗?
      

  20.   

    用一个Session的Listener,把所有的session保存在ArrayList或Vector,当session失效或想踢的时候直接session.invalidate()就OK了.
      

  21.   

    to:  Eraserpro(穷...哪位好人拿钱砸我吧!!!)监听session销毁的话对方正常退出当然没问题,如果用户直接关闭浏览器的话session要过一段时间才销毁,如果把session的有效时间设得过于短也不好吧
    还有个问题:如果对方不聊天就挂在那,session会否失效?
      

  22.   

    踢人的时候清空他的session就可以了,然后你在聊天的页面文件里面判断session就可以了
      

  23.   

    程序已经都发了。里面有一些没用的可以删掉。比如有一个Guid是产生一个16位的唯一用户标识。是为了下面写ping测试每个客户端的连接速度要用到的。如果是做聊天室这个没有必要。请删掉。判断用户重名登陆已经加了。
    请不要直接把源代码用在您的程序里。有版权的。
      

  24.   

    上面踢人的指令应该是SL:KO前天打错了。不好意思。在程序里有类似的使用,请参照。
      

  25.   

    记录在线人员的话肯定是用application最好了,人员进入聊天室的时候就在application中加入,踢出去的时候就把它remove了,然后刷新页面
      

  26.   

    还有马 [email protected] 谢谢
      

  27.   

    [email protected]
    谁能给我一份啊
      

  28.   

    [email protected]
    能给我一份吗?谢谢!!!!
      

  29.   

    我要最复杂的:)[email protected]功能越齐全越好谢谢“听风看雨”
      

  30.   

    的确有这样一个问题,如果是用session保存的话,应用服务在用户没有任何操作的情况下经过一段时间之后也会将session无效。用application应该没有这个问题吧?
      

  31.   

    麻烦楼主也给我一份吧,谢谢!
    [email protected]
      

  32.   

    我正策划一个聊天室,麻烦楼主也给我一份吧,谢谢!
    [email protected]
      

  33.   

    本人闲的时候做了一个简单易用的聊天室,效果不错!
    谁想要留下信箱地址,免费给发!
    收到后解压后把这个MyFrist目录发布到服务器即可,无论是tomcat或者是weblogic都可以使用。本人经过测试