如何实现Web聊天室——JSP
很久以前就想要做一个聊天室,因为没有想到完全的解决方案,就一直没有动手。想的时候越想越多,困难就越多,以致无法实现。简单的聊天室可以只是群发信息(公聊)和私聊功能即可。可以加点功能如踢人、屏蔽某人、发送表情、图片音乐等等。
如果做一个很简单的聊天室,用20分钟就足够。不保存数据到数据库,聊天内容直接放到全局变量application中,每隔一秒半秒刷新一次页面。
为了做一个比较满意的聊天室,整个晚上找资料,没发现有什么在思想给指导的文章,倒是找到了一些JSP源码。看了一些例子,都大同小异,经过思考,得到如下体会。
数据库设计:
发送者、接收者、内容、发送时间
这四个是基本不可少的,当接收者是比较特殊的值时,表示公聊。
页面刷新:
虽然网上有无刷新聊天室,但我觉得都一样有刷新,即使是用Ajax技术也是“暗地里”默默地刷新。
以前的做法是使用隐藏框架,现在可以用ajax。不过感觉差别不大。
在线离线:
在线是很简单的,只要登录了,就是在线,往在线列表加一个人就可以了。但离线就有点不同,因为人家会悄悄走掉。一般做法可以把session的生命周期设置得很短,甚至短到1分钟,缺点可想而知。还有一种做法是,在用户关闭浏览器时向服务器发送信号,即在onunload事件中添加处理。两者结合的话,可以设置session的生命周期长些,实现HttpSessionBindingListener接口,管理在线离线。
前台设计:
要做漂亮靠美工,要灵活且功能多多就要大量使用JS代码了。这个我没想太多。
基本上思考成这样,明天再具体实现,希望睡前能有想到更好的东西。
PS:请多多指教! 前台设计:
要做漂亮靠美工,要灵活且功能多多就要大量使用JS代码了。这个我没想太多。
功能性固然重要,美观性也不可忽视!
如果界面臭的要死,聊起天来会少了很多气氛。
外行人路过! 用FLASH+php实现.... 我用dojo的工具包感觉非常好用~~
可以减少js代码~~ 原来打算用prototype.js包的,不知道dojo如何。
有空看一下,多个选择,谁简单就用谁 不错,支持一下。做过小论坛用jsp,不知是否可以帮你。 xinggg22 ,先谢了!
今天看一个PHP的聊天室实例时,它竟然在数据库保存在线信息,每隔10秒去查询,返回在线情况。
为什么不保存在application对象?虽然占内存,但人数一定有限制的,不会太多,比每次去查询数据库的开销要小吧?
还没有动手做,因为聊天室只是企业网站的一个小部分,目前仍在考虑整体结构。 偶是区区菜鸟阿!惭愧阿!!
不知道是否有研究struts+hibernate+spring之类的东西?
web聊天室可否做好发个代码give me?? struts+hibernate做个简单的东西,这次用纯JSP做,什么事情都自己动手,锻炼一下 性能方面呢?
页:
[1]