Google App for java,发个会议室

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

     前些日子看了javaEye新闻月刊,发现了Google App for java,就申请了一个。以前找了好久关于jsp的免费空间,呵呵,myjavaserver eatj等都用,甚至曾经想转行搞php(因为php的免费空间多,呵呵)。废话少说了。
   
     http://tablemeeting.appspot.com/
     这个东东,我用了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,文笔不好,请见谅,睡觉了。
     
     

     

     
     

你可能感兴趣的:(java,Ajax,jsp,PHP,Google)