Pushlets 实现了。保暖思淫欲, 现在我们要通过 Web IM 给其他用户传文件了。
这在我最新的框架 Eurasia3 中是非常容易的一件事情, 这里简单地描述一下原理。
当用户点击 "发送文件时", RIA 客户端在浏览器上生成一个上传文件的 "<Form>", 让用户选择上传的文件,
这样服务器就得到一个普通的文件上传请求, 通常的 CGI 会把文件保存在磁盘上以实现传统的上传功能。
但是这里, 我们并不把上传的文件放到磁盘上, 而是在内存中开出一个缓冲区,
当用户上传的内容达到缓冲区空间上限, 他的上行 IO 就阻塞了, 等待缓冲区重新可写。
与此同时, 服务器向接收文件的目标用户发送一个下载指令, 使他打开一个下载链接,
下载的内容即是从上传缓冲区中读取的, 当缓冲区读空, 用户的下行 IO 就阻塞了, 等待上传用户补充缓冲区。
这两者是同时进行的, 形成了一个生产消费模型。
其结果是, 服务器上并没有真实存在过这个文件, 它只要提供一个几百 K 的缓冲区就可以代理一次 Web IM 的文件传输请求。
出处:
http://eishn.blog.163.com/blog/static/6523182007290112332/
分享到:
相关推荐
Sparkweb IM即时聊天源码是一款基于Web技术实现的在线聊天工具,主要特点是用户只需要通过浏览器即可进行实时的文字交流,而不支持文件传输和视频聊天功能。这个项目的核心是利用Web技术来构建一个简单、高效的即时...
这可能是一个文件夹,包含了实现IM系统的所有必要文件,如ASP脚本文件、CSS样式表、JavaScript文件、图片资源等。ASP文件可能包含了处理用户请求和响应的逻辑,而CSS和JavaScript则负责界面的布局和交互效果。 6. ...
5. 文件传输:支持文件的发送与接收,可能涉及到文件切片、断点续传等技术。 6. 安全机制:包括数据加密传输、防止SQL注入、XSS攻击等,确保用户信息的安全。 四、性能优化 1. 连接池管理:优化数据库连接池,...
在压缩包“iweb_im”中,包含了“iWeb_IM”项目的完整文件结构。开发者可以通过解压文件,直接查看和修改源代码,进一步了解和研究这个系统的实现细节。这其中包括了PHP脚本、HTML模板、CSS样式以及JavaScript交互...
鱼鱼 WEB IM 20090422 本程序版权归鱼鱼qq260332019所有, 此程序非经鱼鱼许可禁止用于商业用途, 作者保留该程序名称、源码的所有相关权利] 源码没有丝毫保留,全部开放提供,请大家多提修改意见. 源码没有丝毫...
10. **自定义扩展**:环信Web-IM Demo提供了基础功能,但实际项目可能有特定需求,如表情包、文件传输、群聊等,开发者需要根据需求进行定制和扩展。 通过深入研究环信Web-IM Demo,开发者不仅可以掌握即时通讯的...
【描述】中的重复内容"Web-mianshi-imWeb-mianshi-imWeb-mianshi-imWeb-mianshi-imWeb-mianshi-im"可能是输入错误,没有提供额外的信息,因此我们将主要基于"标签"和"压缩包子文件的文件名称列表"来解析知识点。...
基于Vue和Javascript的IM即时聊天Web应用设计源码,该项目包含116个文件,主要文件类型有40个vue前端文件,以及30个javascript文件。此外,还包括22个png图像文件,以及4个jpg图像文件。该项目是一个基于Vue和...
【标题】"openfire + jwchat 的 WEB IM" 是一种基于开源技术构建的即时通讯解决方案,它结合...通过学习和掌握这些知识点,开发者可以构建出一个稳定、安全且具有扩展性的Web IM系统,为用户提供高效、便捷的沟通渠道。
【标题】"基于openfire + jwchat 的 WEB IM"是一个集成项目,旨在实现一个基于网页的即时通讯(IM)系统。在这个系统中,Openfire作为服务器端的即时通讯平台,而jwchat则作为客户端的JavaScript库,两者结合提供了...
环信官网的web-im的整体实现 包括注册登录,加好友,删除好友,聊天,文字图片等消息的发送实现,具体请下载文件查看…… 环信官网的web-im api是一个巨坑,前端兄弟一脸懵逼,无奈只能帮前端兄弟写这个demo,一阵...
鱼鱼 WEB IM 2008-2009 2009-4-16 修改了dll中的1个程序错误 本程序版权归鱼鱼qq260332019所有, 此程序非经鱼鱼许可禁止用于商业用途, 作者保留该程序名称、源码的所有相关权利] 源码没有丝毫保留,全部开放...
【标题】"仿百度web.im.baidu.com聊天界面"是一个项目,旨在模仿百度的在线即时通讯界面,即web.im.baidu.com的用户体验和设计。这个项目主要关注网页端的聊天功能实现,提供了一个良好的用户交互界面。 【描述】...
腾讯云IM开放平台提供了一套完整的解决方案,包括WebSDK和微信小程序SDK,使得开发者能够方便地在自己的应用中集成即时聊天功能。 **一、腾讯云IM开放平台** 腾讯云IM开放平台是腾讯云推出的一款专业级的通讯服务...
标题“web-im.rar_React_im_im服务器_react_openfire”暗示了一个基于React的Web即时通讯(IM)项目,其中使用了Openfire作为后端服务器。这个项目可能包含了实现单聊和群聊功能的所有必要组件和配置。让我们深入...
本文将深入探讨“跨平台(Android,iOS,web)的 IM 开源项目”,重点关注其在Android平台上的实现,以sealtalk-android-master为例进行解析。 一、跨平台IM系统的架构与设计 跨平台IM系统的核心是实现多终端间的实时...
总的来说,通过这个例子,你可以学习到如何使用DWR 2.0来构建一个实时的Web应用,特别是如何利用Reverse Ajax实现服务器到客户端的数据推送。这不仅加深了对DWR的理解,还对Web开发中的实时通信有了实际操作的经验。...
`IM1.4.zip`可能包含了一个Web IM系统的服务器端代码和配置文件,可能包括了Comet服务的实现,以及与数据库交互的逻辑。解压后,可以通过阅读代码来了解具体的实现细节,例如如何处理请求、如何与数据库交互以及如何...
本项目是基于PHP的即时通信聊天应用Raingad-IM后端设计源码,包含876个文件,其中主要包含179个png图片文件,168个bcmap字体文件,111个ftl模板文件等。系统采用了PHP、JavaScript、CSS和HTML等技术,实现了即时通信...
- 多端接入:支持用户通过App、PC和Web等不同设备接入聊天系统 4. 群组功能详细说明: - 群二维码:允许群成员通过二维码快速加入群聊 - 群公告:群管理员可以发布公告信息以通知群成员 - 昵称和头像:用户可以...