`
kenby
  • 浏览: 725443 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web聊天室

    博客分类:
  • web
 
阅读更多

web 聊天室支持多人在线聊天,某个人发了一条消息,在线的所有人都能实时看到。

 

tornado 自带的 demo 演示了如何实现一个 web 聊天室, 通过源码,我总结一下它设计方案。


服务器端

维护一个消息缓存,用来保存所有人发的消息。

维护一个等待队列,用来保存等待新消息的用户。

如下图所示:

(1) 添加消息

服务器把用户发送的消息加入消息缓存,同时唤醒等待队列中的用户,

告诉它们把最新的消息取走。


(2) 推送消息给用户

服务器与用户保持长连接,如果用户的 cursor 到达了消息缓存的末尾,说明

服务器暂时没有最新的消息,这时让用户一直等待,等待的过程中不关闭用户的连接。

如果服务器有最新的消息,则把用户 cursor 之后的消息一并发送给客户,

然后关闭用户的连接。


客户端

记住自己从服务器上获取了多少消息缓存,用 cursor 来标识。

使用 Ajax 发送消息, 使用 long polling 从服务器获取最新消息。 

 

 

long polling 技术

客户端发起一次请求后立即挂起,一直到服务器端有更新的时候,

服务器才会主动推送信息到客户端。 在服务器端有更新并推送信息

过来之前这个周期内,客户端不会有新的多余的请求发生,服务器端

对此客户端也啥都不用干,只保留最基本的连接信息,一旦服务器有

更新将推送给客户端,客户端将相应的做出处理,处理完后再重新发起下一轮请求。

  • 大小: 18.8 KB
分享到:
评论

相关推荐

    web聊天室.zip

    【标题】"Web聊天室.zip"是一个包含了一个基于Java开发的简单Web聊天室项目,它可以在Eclipse集成开发环境中顺利运行。这个项目不仅提供了一个基本的实时通信平台,还附带了详细的演示视频和深入的技术文档,方便...

    一个简单的web聊天室,适合初学

    【标题】"一个简单的web聊天室,适合初学"指的是为初学者设计的基于Web的实时通讯应用。这种聊天室通常使用HTTP协议并通过Servlet技术在服务器端处理请求,实现用户之间的信息交换。 【描述】"一个简单的web聊天室...

    Web聊天室系统源码

    【Web聊天室系统源码】是一个基于JavaWeb技术开发的实时通信应用,它允许用户通过网页进行在线聊天。这个系统的核心在于实现用户之间的即时信息传递,通常包括注册、登录、发送消息、接收消息以及可能的群组聊天等...

    web聊天室源码

    【Web聊天室源码详解】 在信息技术领域,Web聊天室是一种基于Web的实时通信平台,允许用户无需安装额外软件即可进行在线交流。本篇将详细探讨Web聊天室的实现原理、关键技术以及源码分析。 一、Web聊天室的实现...

    简易在线web聊天室

    【简易在线Web聊天室】是一个个人开发的项目,它展示了如何构建一个基本的实时通信平台。这个聊天室在Apache Tomcat服务器上运行良好,利用了AJAX(Asynchronous JavaScript and XML)技术来实现页面的异步刷新,为...

    web聊天室web聊天室web聊天室

    【标题】:构建Web聊天室的技术详解 在Web开发领域,构建一个实时的、互动性强的Web聊天室是一项常见的需求,它可以为用户提供即时通讯的功能,适用于在线社区、教育平台、远程工作等多种场景。本篇文章将深入探讨...

    web聊天室源码 支持单对单聊天 单对多聊天

    【标题】"Web聊天室源码 支持单对单聊天 单对多聊天" 描述了一种基于Web技术实现的在线聊天应用,它具备基本的实时通信功能,包括一对一私聊和一对多群聊。这个项目的核心在于利用了Web技术来创建一个互动性强、实时...

    Web聊天室源码下载

    在IT领域,Web聊天室是一种在线交流平台,允许用户通过Web浏览器进行实时对话。这个"Web聊天室源码下载"的资源是用Java语言开发的,对于初学者来说,这是一个非常有价值的实践项目,可以帮助他们更好地理解和掌握...

    太原理工大学web聊天室源码+文档

    【标题】:“太原理工大学web聊天室源码+文档”揭示了这是一个关于Web开发的实践项目,主要关注于创建一个在线聊天平台。这个项目可能是太原理工大学一门关于Web技术课程的期末作业,让学生通过实际操作来理解和掌握...

    web聊天室创建程序

    【web聊天室创建程序】是一种适合初学者学习的编程项目,它涉及到Web技术中的实时通信和视频音频交互。在这个项目中,你可以了解到如何利用现有的开发工具和库来创建一个简单的在线聊天室,使得用户能够在不同的设备...

    web聊天室(.net core MVC + signalr + EF + Authorize)

    【标题】"web聊天室(.net core MVC + signalr + EF + Authorize)" 描述了一款基于.NET Core MVC框架、使用SignalR实现实时通信、Entity Framework(EF)进行数据库操作,并结合Authorize进行权限控制的Web聊天室...

    web聊天室程序

    完整的web聊天室程序,基于vs2005 sql2005编写,可以直接运行,适合初学者的学习借鉴。

    java web 聊天室 源码

    【Java Web聊天室源码详解】 Java Web聊天室是一个基于Web技术实现的在线实时通信系统,主要用于用户之间的即时交流。这个项目使用了MyEclipse作为集成开发环境,它是一款强大的Java应用开发工具,集成了代码编写、...

    C#实现WEB聊天室

    在IT领域,构建一个Web聊天室是一项常见的任务,它能够为用户提供实时的交流平台。本项目以"C#实现WEB聊天室"为主题,采用ASP.NET框架和C#编程语言,结合AJAX技术,创建了一个功能完善的在线聊天环境。下面将详细...

    java web聊天室

    【Java Web聊天室】是一个基于Java Web技术实现的在线交流平台,主要利用了JSP(Java Server Pages)和Servlet技术来构建。在这个系统中,用户可以通过网页进行实时的文本聊天,实现了基本的社交功能。接下来,我们...

    简单的web聊天室

    【简单的Web聊天室】是一个基于JQuery和.NET技术构建的在线聊天应用。它以其简洁的架构和易用性为特点,主要由静态HTML页面和一个动态的`ajax.aspx`页面组成,这使得整个系统的维护和扩展相对较为方便。在这个项目中...

    java web聊天室视频和源码

    java web聊天室视频和源码 其他资源可以查看我的其他上传 20个项目之一

    安装方便的简洁在线web聊天室源码

    安装方便的简洁在线web聊天室,支持图文发送,兼容QQ内置,微信内置,pc等浏览器 无需服务端操作,php+mysql高效运行,无需第三方插件 高效+极快的运行速度 聊天室+bbs推送 多功能聊天室 支持一键粘贴网页图片发送 自定义...

    JSP开发Web聊天室系统源代码

    在本项目中,我们讨论的是一个使用JSP技术开发的Web聊天室系统。JSP(Java Server Pages)是Java平台上的一种动态网页技术,它允许开发者将静态HTML与动态Java代码结合,以创建交互式Web应用。这个源代码提供了一个...

Global site tag (gtag.js) - Google Analytics