工大后院

 找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 4783|回复: 9

如何实现Web聊天室——JSP

[复制链接]
发表于 2007-4-21 01:33 | 显示全部楼层 |阅读模式
很久以前就想要做一个聊天室,因为没有想到完全的解决方案,就一直没有动手。想的时候越想越多,困难就越多,以致无法实现。

简单的聊天室可以只是群发信息(公聊)私聊功能即可。可以加点功能如踢人屏蔽某人发送表情图片音乐等等。

如果做一个很简单的聊天室,用20分钟就足够。不保存数据到数据库,聊天内容直接放到全局变量application中,每隔一秒半秒刷新一次页面。

为了做一个比较满意的聊天室,整个晚上找资料,没发现有什么在思想给指导的文章,倒是找到了一些JSP源码。看了一些例子,都大同小异,经过思考,得到如下体会。

数据库设计:
发送者、接收者、内容、发送时间
这四个是基本不可少的,当接收者是比较特殊的值时,表示公聊。

页面刷新:
虽然网上有无刷新聊天室,但我觉得都一样有刷新,即使是用Ajax技术也是“暗地里”默默地刷新。
以前的做法是使用隐藏框架,现在可以用ajax。不过感觉差别不大。

在线离线:
在线是很简单的,只要登录了,就是在线,往在线列表加一个人就可以了。但离线就有点不同,因为人家会悄悄走掉。一般做法可以把session的生命周期设置得很短,甚至短到1分钟,缺点可想而知。还有一种做法是,在用户关闭浏览器时向服务器发送信号,即在onunload事件中添加处理。两者结合的话,可以设置session的生命周期长些,实现HttpSessionBindingListener接口,管理在线离线。

前台设计:
要做漂亮靠美工,要灵活且功能多多就要大量使用JS代码了。这个我没想太多。


基本上思考成这样,明天再具体实现,希望睡前能有想到更好的东西。

PS:请多多指教!
发表于 2007-4-21 09:06 | 显示全部楼层
前台设计:
要做漂亮靠美工,要灵活且功能多多就要大量使用JS代码了。这个我没想太多。


功能性固然重要,美观性也不可忽视!

如果界面臭的要死,聊起天来会少了很多气氛。

外行人路过!
回复

使用道具 举报

发表于 2007-4-21 12:03 | 显示全部楼层
用FLASH+php实现....
回复

使用道具 举报

发表于 2007-4-22 10:44 | 显示全部楼层
我用dojo的工具包感觉非常好用~~
可以减少js代码~~
回复

使用道具 举报

 楼主| 发表于 2007-4-22 12:09 | 显示全部楼层
原来打算用prototype.js包的,不知道dojo如何。
有空看一下,多个选择,谁简单就用谁
回复

使用道具 举报

发表于 2007-4-22 16:12 | 显示全部楼层
不错,支持一下。做过小论坛用jsp,不知是否可以帮你。
回复

使用道具 举报

 楼主| 发表于 2007-4-22 16:33 | 显示全部楼层
xinggg22 ,先谢了!

今天看一个PHP的聊天室实例时,它竟然在数据库保存在线信息,每隔10秒去查询,返回在线情况。
为什么不保存在application对象?虽然占内存,但人数一定有限制的,不会太多,比每次去查询数据库的开销要小吧?

还没有动手做,因为聊天室只是企业网站的一个小部分,目前仍在考虑整体结构。
回复

使用道具 举报

发表于 2007-4-23 15:58 | 显示全部楼层
偶是区区菜鸟阿!惭愧阿!!
   不知道是否有研究struts+hibernate+spring之类的东西?
    web聊天室可否做好发个代码give me??
回复

使用道具 举报

 楼主| 发表于 2007-4-23 16:08 | 显示全部楼层
struts+hibernate做个简单的东西,这次用纯JSP做,什么事情都自己动手,锻炼一下
回复

使用道具 举报

发表于 2007-4-25 19:34 | 显示全部楼层
性能方面呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-5-15 03:17

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表