`

网页聊天室的原理

 
阅读更多

网页聊天室的原理 


目前,无论是网页游戏、论坛博客、电子商场,随处都可以看到web聊天室。

web聊天室的实现方法有多种,包括:基于ajax技术的实现,基于Comet(Pushlet)技术的实现,基于XMPP协议的实现,以及基于flash的XmlSocket和远程共享对象的实现。

(1) 基于ajax技术的实现。

ajax(异步JavaScript和XML,Asynchronous javascript and xml),它的作用就是可以实现页面与服务器端的无刷新交互。用ajax来实现web聊天室的基本原理是:在页面上每隔一段时间就通过ajax从服务器中获取数据,然后更新页面显示。这种方法简单明了,缺点是实时性不高。

(2) 基于Comet技术的实现。

Comet 是一种新的 Web 应用架构。基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。Comet 架构非常适合事件驱动的 Web 应用,以及对交互性和实时性要求较高的应用,如股票交易行情分析、聊天室和 Web 版在线游戏等。

Pushlet是一种comet实现(Pushlet 是开源的Comet 框架):在Servlet机制下,数据从服务器的Java对象直接推送(push)到客户端的页面,而无需任何Java applet或者插件的帮助。它使server端可以周期性地更新client的web页面,这与传统的request/response方式不同。

Pushlet基于HTTP流,这种技术常常用在多媒体视频、通讯应用中,比如QuickTime。与装载HTTP页面之后马上关闭HTTP连接的做法相反,Pushlet采用HTTP流方式将新数据源源不断地推送到client,再此期间HTTP连接一直保持打开。有关如何在Java中实现这种Keep-alive的长连接请参看Sun提供的《HTTP Persistent Connection》和W3C的《HTTP1.1规范》。


(3)基于XMPP协议的实现

XMPP(可扩展消息处理现场协议)是基于XML的协议,是专为及时通信系统设计的通信协议,用于即时消息以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。著名的开源聊天系统服务器Openfire就是基于XMPP协议的Jabber服务器。

可以通过Flash或ajax与Jabber服务器进行交互,实现webIM的功能,

(4)基于flash的XmlSocket的实现

Flash Media Server是一个很强大的流媒体服务器,它基于rtmp协议,提供了强壮的流媒体交互功能。在FMS中,提供一种远程共享对象(SharedObject)的机制,客户端可以创建并连接到服务器端的远程共享对象。可以有很多个客户端连接到同一个远程共享对象中,任何一个客户端对共享对象进行了修改,服务器都会将共享对象的修改信息发送给所有其他连接到这个共享对象的客户端。这种远程共享对象的机制可以很方面地实现以下功能:· 远程控制幻灯片放映 · 文字聊天 · 网络对战 · 远程选择和播放歌曲 · 现场拍卖 · 客户服务应用程序。

远程共享对象很适合用于实现web聊天室中的群聊功能。为每一个群都建立一个远程共享对象,这样的话,任何用户在群上发信息,就可以通过服务器自动发送到所有的群成员。

用远程共享对象来实现单聊是不实际的。对应单聊的实现,我们需要借助socket。客户端通过socket服务器与其他客户端进行私聊。聊天信息通过socket服务器进行转发。

这种方式是效率最高的web聊天室实现方式。

 

转自:http://hi.baidu.com/yanyanerxiao/blog/item/acb1ea04ccc2040d728b6595.html

分享到:
评论
1 楼 cuisuqiang 2012-10-10  

相关推荐

    php网页聊天室源码

    仿QQ群在线聊天系统采用先进的数据传输原理,模仿QQ群界面。支持几千人同时在一个群里聊天交流,具有安全、快速、安全、稳定等特点 基本功能: ·仿QQ群聊天大厅(主要功能) ·群共享功能 ·好友功能,可在线...

    PHP+Ajax编写的web聊天室 网页聊天系统 学习研究源码(有网页效果图)

    最近编写了一个php版的网页聊天室,自己纯手工完成的,功能相似与QQ,但网页界面没有优化,因为主要是用于学习,懂得原理我觉得才是最重要的。里面有效果图

    用PHP+MySQL搭建聊天室功能实例代码

    下面,以一个简单的聊天室设计为例,介绍PHP+MySQL在网页开发中的应用1、总体设计 1.1 构思与规划: 聊天室的基本原理,就是把每个连上同一网页的用户传送的发言数据储存起来,然后将所有的发言数据传给每一用户。...

    webRTC网页实时通信--视频教程.txt

    该教程包含了webrtc音视频入门与实战,视频教程,带源码和...包含了webrtc运行机制原理与架构,web服务器原理与搭建Nodejs开发环境,webrtc音视频设备管理,webrtc集成socket开发及时聊天室等教程 该资源来源于网络。

    基于androidstudio的安卓记账软件开发

    本项目的优点和独特点在于,在提供收支记录的情况下,同时提供聊天室功能,可以在群聊天室内进行沟通交流,支持录音和上传照片的功能,更加方便账务核对以及收支情况。同时提供有关发票、单票等的图像识别功能,帮助...

    JSP动态网页新技术

    第9、10章分别给出编程实例:JSP的BBS论坛程序、JSP聊天室程序,第11章是JSP的编程技巧集;附录部分提供了6个上机指导操作。 本书结构清晰,内容丰富,讲解深入,实际范例与软件功能紧密结合。不但是从事用JSP进行...

    ASP.NET 设计说明书

    本次网络聊天室系统使用HTML框架网页技术和ASP.NET内置Application对象设计一个简易的网上聊天室。通过本次课程设计掌握Application和Session对象的特点和使用方法,理解Application和Session对象在应用系统中保存...

    Ajax 与 PHP Web 开发

    本书不仅从ajax的客户端和服务器端技术两个方面指导读者逐步掌握ajax基础应用,还通过实例详细演示了ajax表单验证、ajax聊天室、ajax suggest、使用svg实现的ajax实时绘图程序、ajax grid、ajax rss阅读器和ajax拖放...

    一步一步学习Revel Web开源框架

    是一个高效的Go语言Web开发框架, 模仿 Play! Framework 而来, 我个人认为Revel是目前Go语言中比较不错的一个Web开发框架, 虽然它还有很多待完善的地方但还是很值得学习和借鉴滴, 我在这里记录一下偶的对...聊天室 验证

    IP探测器 隐藏你在论

    该软件运用http代理服务 器原理,可以隐藏你在论 坛、留言本、计数器、WEB 聊天室、网页等以及登陆 网站发信件时留下的真实 IP地址。

    使用JS+socket.io+WebRTC+nodejs+express搭建一个简易版远程视频聊天

    完整的userList.js(创建用户在线列表,添加邀请事件,初始化聊天室) 遇到的问题 优化后完整的video.js 服务端 完整的server.js 实现效果 注意 WebRTC 网页即时通信,是Web Real-Time Communication 的缩写,它...

    IP隐藏器

    该软件运用http代理服务器原理,可以隐藏网络新手在论坛、留言本、计数器、WEB聊天室、网页等以及登陆网站发信件时留下的真实IP地址。中文界面,简单易懂,具有“一键代理”的感觉,并且可以随时在线查询最新代理...

    网络新手IP隐藏器 1.10

    该软件运用http代理服务器原理,可以隐藏网络新手在论坛、留言本、计数器、WEB聊天室、网页等以及登陆网站发信件时留下的真实IP地址。中文界面,简单易懂,具有“一键代理”的感觉,并且可以随时在线查询最新代理...

    AcFun Fix-crx插件

    聊天室作者本人的介绍如下:AcFun Fix 2015.02.19可以修复以下问题:1.网页只显示头部(视频标题都没显示)[原理:修改www.acfun.tv为wenzhou.acfun.tv]2.评论区不显示[原理:同上]3.视频标题显示了,但播放器位置一片...

    知乎大神萧井陌web前端课程

    ------------------------课程介绍------------------------ ...第2章 JavaScript 介绍 第3章 作业讲解、编程的选择结构和函数...第23章 架构、分布式、性能、聊天室项目 第24章 简历和工作、工作后的计划、学习的计划

    java源码包---java 源码 大量 实例

    java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥  ...

    java源码包JSP实例源码JAVA开发源码65个合集.zip

    P2P--多用户在线聊天室(Java源码).rar P2P源码 Azureus 2.5.0.2(JAVA).rar PDF分割与合并源代码.rar QR解码的Java实现程序.rar Skype 4.0 Java版源码及开发文档.rar SnakeScript Java游戏脚本引擎 v1.1.rar ...

    java源码包2

    java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,...

    java源码包3

    java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,...

    java源码包4

    java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,...

Global site tag (gtag.js) - Google Analytics