当前位置: 网学 > 网页素材 > AJAX代码 > 正文

用AJAX+J2EE实现一个网上会议室系统

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 09/05/30

  今年大家都在炒作Web2.0,其中的一门技术Ajax也是跟着火了起来,因此前面我写了一篇名为《忽悠一下AJAX》的文章,简单地分析了一下Ajax的技术的实质。虽然笔者不太喜欢跟风,但Ajax有一些地方还是比较有用的。前段时间做了EasyJF开源团队的网上会议系统,就用到了Ajax技术,下面把设计思路发出来跟大家分享一下。

  一、系统实现的功能

  本会议室系统主要用于EasyJF开源团队的成员网上会议使用,会议系统模拟传统的会议形式,可以同时开设多个不同主题的会议室,每个会议室需要提供访问权限控制功能,会议中能够指定会议发言模式(分为排队发言、自由发言两种),系统能自动记录每个会议室的发言信息,可以供参会人员长期查阅。

  会议系统的用户支持游客帐号参加会议,同时也提供跟其它用户系统的接口,比如EasyJF官网中的开源论坛系统。

  会议系统暂时使用文字聊天的方式,并提供语音及视频的接口。

  二、技术体系

  服务器端使用Java语言,MVC使用EasyJWeb框架;

  客户端使用AJAX技术与服务器端交互数据;

  会议历史信息储存格式使用文本格式,方便系统安装运行,也便于管理。

  三、会议室服务器端设计

  会议室服务器端是整个会议系统的核心部分,服务器端程序设计的好坏影响到整个系统的质量。

  首先,根据会议室要实现的功能进行抽象分析。一个会议室对象,应该包括会议主题、会议简介、参会人数限制、公告、会议室类型、访问权限设定、房间密码、当前参会的人员、当前发言的人员、排队等待发言的人员等参数信息。我们把他封装一个Java对象当中。如下面的ChatRoom代码所示:

  public class ChatRoom{

  private String cid;//主键

  private String title;//聊天室主题

  private String intro;//聊天室简介

  private String announce;//聊天室公告

  private String owner;//聊天室创建人

  private Integer maxUser;//最大在线人数

  private Integer intervals;//最大刷新时间间隔

  private String vrtype;//访问权限

  private String vrvalue;//访问值

  private Integer status;//聊天室状态

  private Date inputTime;

  }

  需要一个管理会议室的类,与会议有关的操作(如启动会议、关闭会议)等都直接找他。该类还应该即有自动定时检测用户在线情况(防止用户意外退出)、把内存中的会议历史发言信息保存到文本文件中等功能。这里可以考虑使用一个ChatService类提供这些功能:

  public class ChatService implements Runnable {

  private static final Map service=new HashMap();//会议室服务,系统中的当前会议室存放到该表集合中

  private static final int maxServices=10;//可以同时开的最大会议室数

  private static final SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");

  private final List msgs;//聊天信息Chat

  private final List users;//在线用户,ChatUser

  private final List talkers;//排队发言人数Talker

  private final List manager;//会议室管理员

  private Talker currentTalker;//当前发言人

  public ChatService()

  {

  this.msgs=new ArrayList();

  this.users=new ArrayList();

  this.talkers=new ArrayList();

  this.manager=new ArrayList();

  this.maxUser=1000;//最大1000人同时

  this.interval=1000*60*5;//5分钟以前的信息

  }

  }

  会议发言信息也需要封装成一个类,表示发言人、接收人、内容、发言时间、类型等,大致如下面的Chat类:

  public class Chat {

  private String cid;

  private String sender;

  private String reciver;

  private String content;

  private Date vdate;

  private Integer types;

  private Integer status;

  }

  还有表示参加会议的人的信息,包括参会人名称、IP地址、状态等,如下面的ChatUser类所示:

  public class ChatUser {

  private String ip;

  private String port;

  private String userName;

  private Date lastAccessTime;

  private Integer status;

  }

  另外还需要一个表示当前发言人的Talker类,表示当前的发言人,发言开始时间,发言预计结束时间等。

  在服务器端的设计中,会议室信息服务器应该能以多线程的方式运行,即启动一个会议就新开一个线程,每个会议线程维护自己的会议状态,如参会人、发言人,保存会议历史发言信息以及清空内存中的数据等操作。

  四、客户端设计

  会议室客户端包括两个部分,一个部分是会议室的管理界面,主要包会议室的“添删改查”及“启动”或“关闭”会议服务的操作。这部分我们直接使用EasyJWeb Tools中的添删改查业务引擎AbstractCrudAction可以快速

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号