`

[转]网页聊天室的原理

阅读更多
目前,无论是网页游戏、论坛博客、电子商场,随处都可以看到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聊天室实现方式。
分享到:
评论

相关推荐

    java web网页聊天室

    Java Web 网页聊天室是一种基于Java Servlet技术构建的在线交流平台,它允许用户通过浏览器进行实时对话。对于想要学习J2EE(Java 2 Platform, Enterprise Edition)开发的初学者来说,这是一个很好的实践项目,因为...

    ASP在线网页聊天室

    ASP在线网页聊天室是一种基于Active Server Pages(ASP)技术实现的实时交互平台,它允许用户在网页上进行实时对话,无需安装任何客户端软件,只需通过浏览器即可参与聊天。这种技术在20世纪90年代末至21世纪初非常...

    asp网页聊天室,比较简单

    在本案例中,"asp网页聊天室,比较简单"是一个基于ASP技术实现的基础版在线聊天室,适合初学者学习和理解ASP的基本原理以及如何实现简单的交互功能。 聊天室的核心功能包括用户之间的实时交流,即发送和接收消息。...

    基于websocket的网页聊天室(私聊+多对多)

    本项目是一个基于WebSocket的网页聊天室,具备私聊和多对多聊天功能,适合初学者理解和实践网络通信的实时性。 在WebSocket技术中,服务器和客户端之间的通信始于一个HTTP升级请求,客户端通过发送一个"Upgrade...

    ESP8266网页聊天室源码

    ESP8266网页聊天室源码是一个基于C语言实现的项目,主要利用ESP8266这款低成本、高性能的Wi-Fi芯片构建一个简单的在线聊天平台。ESP8266因其强大的网络功能和易于编程性,常被用于物联网(IoT)应用中,如智能家居、...

    基于 visual studio开发的在线聊天室

    【在线聊天室与Visual Studio开发】 在信息技术领域,开发在线聊天室是一项常见的任务,它涉及到实时通信、用户交互和数据库管理等多个技术层面。在这个项目中,我们利用Microsoft的Visual Studio作为集成开发环境...

    dwr 的网页聊天室demo

    **DWR(Direct Web Remoting)网页聊天室Demo详解** DWR(Direct Web Remoting)是一种JavaScript库,它允许在浏览器和服务器之间进行双向通信,实现了JavaScript与Java之间的远程调用,极大地简化了Ajax应用的开发...

    php网页聊天室源码

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

    江湖聊天室程序18.0.rar

    江湖聊天室程序18.0是一款基于ASP技术构建的在线实时交流平台,它为用户提供了一个简单易用且功能丰富的互动环境。ASP(Active Server Pages)是微软开发的一种服务器端脚本语言,主要用于创建动态网页。在这款聊天...

    asp网页聊天室软件

    【ASP网页聊天室软件详解】 ASP(Active Server Pages)是一种微软公司开发的服务器端脚本环境,用于创建动态交互式网页。在这个特定的案例中,我们讨论的是一个基于ASP技术构建的网页聊天室软件,它提供了群聊功能...

    简单的JSP网页聊天室

    【标题】"简单的JSP网页聊天室"是一个适合初学者的项目,旨在通过MyEclipse这一集成开发环境,实现一个基本的局域网内聊天功能的网页应用。这个项目不仅涵盖了JSP(JavaServer Pages)的基本语法和原理,还涉及到...

    多人聊天室源码.rar

    【标题】:“多人聊天室源码.rar”是一个包含Java编程语言实现的多人在线聊天室的源代码压缩包。这个项目可能是一个实时通信系统的实例,旨在教授如何构建一个基本的网络聊天平台,允许用户进行实时交流。 【描述】...

    asp聊天室完整原代码

    【ASP聊天室完整原代码】是一个面向初学者和专业开发者提供的资源,用于了解和学习如何构建基于ASP(Active Server Pages)技术的在线聊天室。ASP是微软开发的一种服务器端脚本语言,允许开发者创建动态、交互式的...

    java jsp 极简聊天室网页版代码

    【Java JSP 极简聊天室网页版代码详解】 在Web开发中,Java JSP(JavaServer Pages)常用于创建动态交互式的网页。本项目是一个基于Eclipse IDE的极简聊天室网页版代码,旨在帮助开发者理解如何用Java JSP、HTML等...

    ajax网页聊天室课程设计

    - **聊天室概念**:聊天室是一个在线平台,允许用户通过互联网进行实时交流。它通常由一个输入框(用于发送消息)、一个显示区(展示对话历史记录)以及一些额外功能(如用户列表等)组成。 - **开发目标**:本项目...

    网页聊天室

    【网页聊天室】是一种基于Web技术的实时交互平台,它允许用户通过浏览器进行实时的文本、音频或视频交流。在本项目中,我们利用MyEclipse工具,仅使用Servlet技术来构建一个简单的网页聊天室。这展示了Servlet在处理...

    jsp聊天室jsp聊天室jsp聊天室

    【JSP聊天室详解】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML代码中嵌入Java代码,从而实现动态网页的创建。本项目是一个简单的JSP聊天室,旨在展示如何利用JSP、Servlet...

    基于IP端口的聊天室

    【基于IP端口的聊天室】是一个使用JAVA技术开发的在线...综上所述,【基于IP端口的聊天室】项目涵盖了JAVA编程、网络通信、多线程、网页开发、GUI设计等多个核心知识点,对于提升JAVA全栈开发能力具有很好的实践价值。

    超级好玩的聊天室!ASP

    【ASP技术介绍】 ASP,全称为Active Server Pages,是由微软公司推出的一种服务器端脚本...虽然现在有更多先进的Web开发框架和语言,但了解ASP及其在聊天室应用中的实践,对于理解Web开发的历史和原理仍然具有价值。

    asp 简单聊天室 趣味聊天室

    通过学习和理解这个ASP简单聊天室,开发者可以深入掌握ASP编程、数据库操作、用户交互设计以及服务器端脚本处理实时通信的基本原理。这个项目对于初学者来说是一个很好的实践案例,有助于提升实际开发技能。

Global site tag (gtag.js) - Google Analytics