Google App for java,发个会议室

终于决定写些什么了。(正在看终结者2018,网速太卡,等了半天缓存,就来javaeye浏览了一圈,发现有了写点什么的冲动。)

前些日子看了javaEye新闻月刊,发现了Google App for java,就申请了一个。以前找了好久关于jsp的免费空间,呵呵,myjavaserver eatj等都用,甚至曾经想转行搞php(因为php的免费空间多,呵呵)。废话少说了。

[url]http://tablemeeting.appspot.com/[/url]
这个东东,我用了2周时间写的(断断续续的,其实就是晚上有空的时候写的,白天要上班)。一开始写了个验证码,可是上传上去以后,发现,验证图片无法显示,后来才发现,google不完全支持java.awt.Image,它有自己的api,晕。只好改了。

先随便注册一个进去看看吧。^o^ 。
这个app是用jsp+ajax+jdo实现的,原理也很简单。

先说结构:

与会者权限: 注册,登录, 创建房间(会议室),进入房间, 聊天,查看共享黑板,查看黑板历史。
主讲人权限: 注册,登录, 创建房间(会议室),进入房间, 销房间, 聊天,在黑板上写字, 看共享黑板,查看黑板历史。(还有几个功能没有实现,比如踢人,嘿嘿)

-------------------------

注册,这个就不用说了,只有一个验证用户名是否已经被注册这个相对复杂点,其他的就是往用户表插一条记录(习惯了“表”这个称呼,其实是一个jdo对象)。

登录,有个判断,同一个session(注意是session,只要重新开一个浏览器,就是不同session了,这点需要改进那个,不过我太懒了,等到什么时候想再写了再改吧),连续登陆错误超过3次,就锁定了,5分钟后才能继续的登录,本来可以做的更完美一点的(记录到“表”中,又是表,呵呵)。

创建房间,就是在房间表增加一条记录。

进入房间,在与会者表添加一条记录,通过roomId识别不用房间的与会者。

聊天,同一个房间的人,一起聊天,相当一个聊天室,可能还不是很完美。
值得注意的是,客户端通过ajax轮询获取聊天记录时,并不是直接查数据库的,而是,先在内存中(application scope)中的找上一次查询数据库的时间,如果跟当前时间比没有超过1秒中,则从内存中读取,否则重新查询数据库,保存到内存中,更新当前查询的时间。这样能减少跟数据库交互的时间,虽然不能做得到真正的实时(相差1秒),但是能减少访问数据库的操作,减缓数据库的压力。

黑板上写字,只有主讲人有权限,其实有点像老师在黑板上写字,其他人在下面看着。

读取黑板上的字,实时的获取黑板上写的字,如果网速够快的话,应该能看见老师正在打字。这里的实现方式跟获取聊天记录的方式一样。

保存黑板历史,老师才有的权限。

查看黑板历史,与会者只能看。

注销房间,通过roomid,删掉几个表(黑板表,与会者表,房间表,聊天记录表,黑板历史表)中的记录。

over,文笔不好,请见谅,睡觉了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值