前段时间,用AJAX+VML写了一个Web在线会议平台,觉得挺有意思的,现在把它拿上来与大家分享 ^_^

这是一个类似于NetMeeting的在线会议平台,但特别之处在于,WebMeeting不需要安装额外的软件,只要有IE就能使用,这样一来,使用者只要能够上网,就能进行在线会议。

WebMeeting还只是一个概念,目前只有电子白板和即时消息发送的功能。WebMeeting的界面是仿flickr风格的,所以非常简洁。如下图所示:


                                  WebMeeting的界面 

功能介绍:
     电子白板:可多人同时进行白板操作,且每个人都可以看到操作过程。
     在线交流:可进行简单的消息发送。

使用方法:
     使用者只要在浏览器中输入WebMeeting所在的WEB服务器地址,就能进行Web在线会议了,多人可同时使用白板绘制图形,发送文本消息,而这些动作都将会反映在每个使用者的屏幕上,如下图所示:


                  用户A                                                                       用户B


WebMeeting的工作原理:
WebMeeting是用AJAX+VML实现的,VML是作为表示层用来进行白板的绘制,故WebMeeting目前只能在IE上运行,而用户操作的反馈则是通过AJAX进行传递的。


                                                         系统运行流程图


     通常情况下,使用AJAX可实现浏览器端与服务器端的异步通信,特别是有了AjaxPro.NET后,更可以非常方便的以同步或异步的方式去调用服务器端的方法,但由于WebMeeting即需要从浏览器端异步调用服务器端方法来完成动作的反馈(即浏览器端把用户的动作发送到服务器),且服务器又需要完成用户动作的分发(即服务器接收到用户的反馈后把动作分发到各浏览器端),也就是说,需要双向的AJAX调用:浏览器端调用服务器端的函数以及服务器端调用浏览器端的函数。

要从浏览器端调用服务器端的方法,AjaxPro.NET可很好的应付,可以利用JavaScript轻松的调用服务器端方法,但是反过来,若想从服务器端调用浏览器端的方法的话,就不是那么容易了,因为AjaxPro.NET并没有提供这个功能。

从本质上讲,B/S结构的应用程序天生就是无状态的,所以就没有办法从服务器端直接调用浏览器端的方法,因为所有请求都是单方向的,只能从浏览器端向服务器发出请求。

为了使服务器调用浏览器端方法成为可能,可以采用控制反转的方法,可按照如下步骤进行:
     a)   当从服务器端调用浏览器端方法时,并不真正的去调用浏览器端方法,而是把调用信息暂时保存在服务器端的“调用信息”队列中。
     b)   在浏览器端安排一个“查询进程”,让它每隔一段时间调用服务器端的“调用查询”函数,该函数会从服务器端的“调用信息”队列中提取出一条调用信息,然后作为返回值返回给浏览器端的“查询进程”。
     c)   浏览器端“查询进程”分析服务器端返回的查询结果,然后代理服务器端调用,最后把浏览器端方法执行的结果传回给服务器端“调用进程”。

这样一来,就可以非常方便的从服务器端调用浏览器端的方法,就像下面这样:

// Page 为浏览器端方法调用器的启动页面
ClientSideMethodCaller caller = new ClientSideMethodCaller(Page);

// clientMethodName:        浏览器端方法名
// param1,param2,………      调用参数
// returnValueReader          返回值阅读器
caller.Call(“clientMethodName”, param1, param2, ………, returnValueReader);

以上就是对WebMeeting的完整介绍,可能有点长,但希望能给想写这类应用的朋友带来一些灵感。

另附上WebMeeting的源代码及说明文档:

WebMeeting下载
     WebMeeting说明文档

转载于:https://www.cnblogs.com/JiaweiZONE/archive/2007/07/23/827739.html

基于AJAX技术的Web会议平台相关推荐

  1. php考试倒计时提交系统,AJAX_基于Ajax技术实现考试倒计时并自动提交试卷,1.概述在开发网络考试系统 - phpStudy...

    基于Ajax技术实现考试倒计时并自动提交试卷 1.概述 在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能.由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作.运行本实例,访 ...

  2. php ajax 考试倒计时,基于Ajax技术实现考试倒计时并自动提交试卷

    1.概述 在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能.由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作.运行本实例,访问准备考试页面index.jsp,在该页面中, ...

  3. 基于Java技术的Web环境下分布式数据库互操作性的实现

                作者:李炽明 莫倩 徐明 1 JDBC工作原理 JDBC(Java Database Connectivity)是1个Sun公司注册了的商标,代表用来执行SQL语句的Java语 ...

  4. 基于BIM技术的施工管理平台研究

    BIM技术是一种数字化建模技术,它根据建筑图纸等信息生成三维的建筑模型,可以在最早期向我们展示该建筑物.BIM技术与工程项目成本管理系统相结合,方面可以提高项目前期的预算精度,同时也可以帮助企业在项目 ...

  5. ajax实现上传文件的进度,基于Ajax技术实现文件上传带进度条

    1.概述 在实际的Web应该开发或网站开发过程中,经常需要实现文件上传的功能.在文件上传过程中,经常需要用户进行长时间的等待,为了让用户及时了解上传进度,可以在上传文件的同时,显示文件的上传进度条.运 ...

  6. PHP是脚本语言 因此不能通过浏览器运行,SQL_基于ASP技术的Web数据库应用开发

    基于ASP技术的Web数据库应用开发 第一节 Web数据库解决方案 一.Web数据库访问过程 Web数据库访问过程如下图: 可以将上述过程分为四步: 1.在浏览器地址栏输入http://mynetse ...

  7. 基于最新WEB技术的Web SCADA平台构建数字化车间

    近年来,随着工业4.0在我国的逐渐普及和深化发展,企业的信息化建设不断的深入,制造业也在向物联网的方向发展.在现在的工厂管理中,由于使用了大量的设备,因此对设备运行状态以及能源耗用,包括环境参数监控成 ...

  8. 创建基于AJAX技术的Scribble应用程序

    简介 ASP.NET Atlas是一套丰富的类库,用于ASP.NET开发AJAX风格的应用程序.本文试图解说Atlas框架的一般性特征,由于Atlas是一个庞大的库,故本文集中探讨Atlas的两个最重 ...

  9. 基于php的网络教学平台,基于PHP技术的网络教学平台的设计与实现

    崔静静+++项小书+++吴燕红 摘要:该文基于简易.灵活的PHP语言及Sql Server数据库技术,设计并实现网络教学平台.该平台重点实现了在线测试.在线答疑等功能,为课堂教学提供了有益补充,增强了 ...

最新文章

  1. 综合布线工作组2008年上半年技术课题工作安排会议通知
  2. Java中的单例模式
  3. JMM(Java内存模型)
  4. Java程序员如何在编码中减少bug存在
  5. 各互联网公司延期上班一览
  6. 1.struts1.x基本action的配置与使用
  7. 计算机在车联网的应用,刘小洋, 伍民友. 车联网: 物联网在城市交通网络中的应用[J]. 计算机应用, 2012, 32(4): 900-904....
  8. ryzen linux 搭配显卡,R5 1500X配什么显卡好 适合AMD锐龙5 1500X搭配的显卡推荐
  9. android版自动点击器,自动点击器安卓低配版
  10. Mosquitto not authorised
  11. 数据库根据身份证号码判别性别
  12. 【历史上的今天】7 月 8 日:PostgreSQL 发布;SUSE 收购 K8s 最大服务商;动视暴雪合并
  13. 人为什么活着?活着就是去理解我们的宿命
  14. 【Tableau 设计提示8.0】在 Tableau 中使用形状的 10 个技巧
  15. 小爱音箱显示服务器连接不上,小爱音箱为什么连不上网络
  16. [Paper Reading] Dynamo: Amazon‘s Highly Available Key-value Store
  17. 企业考勤管理系统python_用Python编写一个电子考勤系统!谁还敢迟到?
  18. 一个有趣的python项目---一个好玩的网站
  19. 偏微分方程简明教程第一章部分答案
  20. 超级兔子魔法设置正式版

热门文章

  1. 包含目录、库目录、附加包含目录、附加库目录、附加依赖项如何使用? 及静态库,动态库的创建与调用和vs里引用的使用
  2. 正则-Strip函数
  3. vue中数组长度_如何在Vue.js中获取计算数组的长度
  4. python给excel排序_如何使用Python对Excel工作表排序
  5. wxpython开发教程_wxpython入门第十步(应用程序框架)
  6. 累计增量备份策略_数据安全与备份解决方案ZDLRA快速恢复
  7. 论文html5的英文文献,html论文英文参考文献(优质论文108个).pdf
  8. 多个pdf合并成一个pdf_十秒教你将多个PDF如何合并成一个PDF
  9. linux vlc 串流_linux下VLC的安装
  10. 加入收藏代码_100个原生JavaScript代码片段知识点详细汇总【实践】