Comet—“服务器推”技术

如何使用Comet进行LangChain执行追踪 Comet是一个强大的工具,用于机器学习和深度学习项目的实验管理。它提供了丰富的API和SDK,可以帮助开发者跟踪模型训练过程、记录实验数据,并进行可视化分析。LangChain是一个专为语言模型设计的链式执行框架,能够灵活地组合不同的语言模型和工具。在调试和优化LangChain应用时,使用Comet进行详尽的执行追踪,可以显著提高效率。 阅读详情

一、名称解释:

Comet最早是由Alex Russell(Dojo Toolkit 项目主管和Dojo Foundation主席)在自己的博客中提出的术语,他是这样说的:”New services like Jot Live and Meebo are built with a style of data transmission that is neither traditional nor Ajax. Their brand of low-latency data transfer to the browser is unique, and it is becoming ever-more common. Lacking a better term, I’ve taken to calling this style of event-driven, server-push data streaming “Comet”.” “They all use long-lived HTTP connections to reduce the latency with which messages are passed to the server. In essence, they do not poll the server occasionally. Instead the server has an open line of communication with which it can push data to the client.”

Comet指的是一种Web应用程序架构。可以直接说,它不是一种技术,而是一种思想,只是这种思想采用了已有的技术去实现。在这种思想里,客户端(Client)不需要显式地向服务器端(Server)发出请求,Server会在其数据发生变化的时候主动将数据异步发送给Client,从而使Client能够及时更新数据并呈现给用户。它不同于传统的Web,也不同于当前流行的Ajax,这种思想非常架构思想非常适合event-driven(事件驱动)式的Web应用和对交互性及实时性要求很强的应用,比如股票交易,聊天室,Web IM,网游等。

 


二、成功案例:
GMail’s GTalk integration
Jot Live
Renkoo
Meebo


三、实现方式:

Comet使用Client和Server之前的HTTP长链接最为数据传输的通道。

实现Comet,最常见的有下面两种方式:


Ajax的长轮询(long-polling):Javascript在处理完服务器返回的信息后再次发出请求,重新建立连接。不同于一般的Ajax,Javascript请求Server,无数据时Server不中断请求,still loading,在一定时间内,获取到数据后,返回请求,又Javascript获取数据后再次发出请求,由此轮询。需要注意的是请求的间隔时间以及每次请求的最长Loading时间。
优点:异步请求;无需浏览器任何插件支持;采用Ajax技术,兼容性强;
缺点:会产生大量的通信量,只能通过增加轮询的时间间隔来减轻Server的压力;

 
Iframe结合Htmlfile流(streaming):通过在页面上嵌入一个隐藏的Iframe,设置其src属性为一个长连接的请求,Server采用flush方式将数据作为前端Javascript函数的参数传递;
优点:不会有很大的通信量,而且数据接收非常及时,并且无中断;
缺点:会产生进度条的Loading状态并一直穿着,用户使用体验很不好,在Google Talk中,通过Htmlfile Active解决了IE下的进度条显示问题;保持长期链接也非常耗服务器资源;


四、临时采用方案:

目前,白社会(bai.sohu.com)采用了第一种方式来实现实时消息的推送,这种方式还存在一个问题就是,在多个tab页下,如何保证没有相同域的长连接请求(IE在同域下只能同时支持两个长链接),于是采用了子域形式来区分多个域,以保证每个tab页下访问的地址都不在一个域名下,此时问题又出来了,出现了Ajax跨域名请求,不过这个问题比较常见,解决方案也很多,我们采用的是Iframe形式;由此,为了实现Comet,我们走了很长一条路,虽然路的确走完了,但是走得很长很艰难,这也是为什么称它为“临时解决方案”,因为它并不是一个完美的方案,但我也相信,以后会更加完美。


五、现有可参考框架
Cometd:官方地址:www.cometd.org
可以参考http://www.blogjava.net/xmatthew/archive/2008/11/20/208911.html
Pushlet:官方地址:www.pushlets.com
pushlet 提供了基于 AJAX 的 JavaScript 库文件用于实现长轮询方式的”服务器推”;还提供了基于 iframe 的 JavaScript 库文件用于实现流方式的”服务器推”。
可以参考http://www.javaeye.com/topic/89158


六、文章参考
Comet:基于 HTTP 长连接的”服务器推”技术
实战 Comet 应用程序开发
Comet on wikipedia

 

原文地址:http://zhangfeng1631.blog.163.com/blog/static/20317752201052123112165/

Comet(Http长连接) 基于php的服务器推送实例,演示在个客户端之间传递数据! 立即下载

相关推荐

cometSpring整合

整合SpringMVC+Mybatis+Spring+Comet,实现消息的实时推送

实现Comet(服务器推送)的两种方式:长轮询和http流

Comet 是一种高级的Ajax技术,实现了服务器向页面实时推送数据的技术,应用场景有体育比赛比分和股票报价等。实现Comet有两种方式:长轮询与http流长轮询是短轮询的翻版,短轮询的方式是:页面定时向服务器发送请求,看有没有更新的数据。而长轮询的方式是,页面向服务器发起一个请求,服务器一直保持tcp连接打开,知道有数据可发送。发送完数据后,页面关闭该连接,随即又发起一个新的服务器请求,在这一过...

蔡武坤的博客 1万+

Comet:基于 HTTP 长连接的“服务器推”技术 (实例)

NULL 博文链接:https://justcoding.iteye.com/blog/1497445

web服务器推技术

入门 web服务器推技术,有一个名字叫comet,是个外国人给它取的名字。仅此而已。 如何实现服务器推技术 有2种技术解决方案。 streaming(流) ajax with long polling(基于ajax的长轮询) pushlet pushlet框架就是采用长轮询技术来实现服务器推技术的。 参考 https://e

B_qxzb的专栏 1120

MMRotate 详细使用教程

MMRotate 详细使用教程 做旋转目标检测,怎么可以不知道如何使用MMRotate呢! github链接: https://github.com/open-mmlab/mmrotate 1 安装 创建虚拟环境并激活 conda create -n mmrotate python=3.7 -y conda activate mmrotate 安装 PyTorch 和 torchvision conda install pytorch torchvision -c pytorch 注意:确保

Sylvia_Lan的博客 1万+

tkinter表格进阶:5分钟实现CSV数据可视化编辑界面(含右键菜单配置)

本文详细介绍了如何使用Python的tkintertable库快速构建CSV数据可视化编辑界面。通过导入导出CSV数据、深度定制右键菜单(如复制、插入行、删除行)以及实现单元格验证等进阶功能,开发者能在5分钟内创建一个可嵌入自动化流程的专业级桌面数据编辑工具,显著提升数据处理效率。

931

comet 简单了解

comet 单纯的粘贴百度百科,方便自己之后技术学习记录,如果有什么不妥的地方可删帖.... (基于 HTTP 长连接的“服务器推”技术) 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! comet 【计】:基于HTTP长连接的“服务器推”技术,是一种新的 Web 应用架构 目录 1“服务器推”技术 ▪概念 ▪兴起 ▪技术对比 2Comet的优缺点 3Comet的应用 4Comet框架DWR “服务器推”技术 编辑 概念 基于...

Cindy_zhangjh的博客 532

ndnSIM学习笔记(一)

在接下来的一段时间要用ndnSIM来做自己的仿真网络,需要系统的学习相关内容,以下为内容记录。1.安装      1.1核心依赖(必需的)             • python >= 2.6             • libsqlite3             • libcrypto++             • pkg-config             • Boost lib...

gaonjzzz的博客 2985

Comet---“服务器推”技术实现

Comet是一种服务器推数据的技术,基于HTTP长链接,避免因链接过多而导致的资源开销。对于智能化监控系统,是一种合适的技术选择。因为监控系统需要实时的把更新的信息推送给客户端。 以下部分引用至IBM官网: Comet 简介 浏览器作为 Web 应用的前台,自身的处理功能比较有限。浏览器的发展需要客户端升级软件,同时由于客户端浏览器软件的多样性,在某种意义上,也影响了浏览器新技术的推广。在 ...

技术无止境 4875

Windows Server上OpenVPN 2.4.8双因子认证实战:账号密码+证书,附一键脚本

本文详细介绍了在Windows Server上部署OpenVPN 2.4.8双因子认证(账号密码+证书)的实战方案,包括架构设计、证书体系规划、环境准备、服务器端配置及客户端自动化部署。通过一键脚本和优化配置,提升企业VPN的安全性和运维效率,特别适合金融、医疗等对安全性要求高的行业。

weixin_29231221的博客 465

WorldPop数据集

WorldPop数据集介绍

qq_43874102的博客 1万+

Comet:基于 HTTP 长连接的“服务器推”技术

基于客户端套接口的“服务器推”技术 Flash XMLSocket 如果 Web 应用的用户接受应用只有在安装了 Flash 播放器才能正常运行, 那么使用 Flash 的 XMLSocket 也是一个可行的方案。 这种方案实现的基础是: Flash 提供了 XMLSocket 类。 JavaScript 和 Flash 的紧密结合:在 JavaScript 可以直接...

102

密码学系列3-Elgamal加密及其IND-CPA安全性证明

但这没有任何影响,敌手本身就只能知道公钥,他并没有能力知道挑战者是否知道对应的私钥。所以上述整个游戏就是一个模拟实验,敌手无法区分挑战者运行的是这个模拟实验,还是真正的按照第一节的算法构造的实验(挑战者知道私钥…为什么合起来的时候有1/2:因为T既可能是随机的也可能是g^{ab},这两种情况概率为1/2。能够攻破Elgamal加密方案,那么挑战者利用敌手的能力构建下面游戏,来求解困难性问题DDH。就是挑战者选的随机数,虽然挑战者自己也不知道。),否则挑战者输出0,作为DDH的回答。

qq_41359358的博客 1249

Comet:HTTP长连接的“服务器推”技术

很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了 Comet - 使用 HTTP 长连接、无须浏览器安装插件的两种“服务器推”方案:基于 AJAX 的长轮询方式;基于 iframe 及 htmlfile 的流方式。最后分析了开发 Comet 应用需要注意的一些问题,以及如何借助开源...

jbossllx的专栏 154

[UVM]UVM TLM2.0简介及应用实例分析

本文介绍了TLM2.0在UVM中的实现与应用。TLM2.0作为SystemC模型间的核心传输机制,相比TLM1.0提供了更丰富的特性,包括双向阻塞/非阻塞接口、时间标记和统一数据包。文章详细解析了TLM2.0在UVM中的接口实现方式,包括socket类型定义、数据传输机制以及时间标记处理。通过一个具体实例,展示了如何在UVM组件中使用TLM2.0的initiator和target socket进行数据传输,并说明了标准数据包格式和精确时间标记的优势。最后指出TLM2.0在UVM中的实现主要是为了与Syste

元直的博客 5397

使用CubeMX配置STM32H7的FreeRTOS

本文将介绍如何使用CubeMX配置STM32H7的FreeRTOS,并提供相应的源代码示例。通过使用CubeMX,你可以轻松地配置FreeRTOS和系统资源,并生成相应的初始化代码和配置文件。在"FreeRTOS"选项卡的"Tasks"部分,可以配置系统中的任务。首先,打开CubeMX软件。在"FreeRTOS"选项卡的"Resources"部分,你可以配置FreeRTOS使用的资源,例如,堆内存和信号量。例如,我们可以创建两个简单的任务,一个任务将在循环中切换LED的状态,另一个任务将通过串口打印消息。

JeeVue的博客 712

Comet:基于HTTP长连接的“服务器推”技术

一、背景        在做某类程序应用时,需要将服务器的响应自动的反馈给浏览器,而不是采用用户请求的方式。基于这样的应用还是比较多的,比如说网页聊天、实时消息提醒等等。所以我们需要这样一种技术来实现服务器主动的将信息推送到浏览器 二、解决方案思考        1、定时请求。定义一个timer,浏览器每隔一段时间去请求服务器,然后配合ajax将结果显示到客户浏览器上。

jeff's blog 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

comet - “服务器推”技术

概念   comet :基于 HTTP 长连接的“服务器推”技术,是一种新的 Web 应用架构。基于这种架构开发的应用中,服务器端会主动以异步的方式向客户端程序推送数据,而不需要客户端显式的发出请求。Comet 架构非常适合事件驱动的 Web 应用,以及对交互性和实时性要求很强

叶落枫亭 1642

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 一句js正则的解释
下一篇: Comet:基于 HTTP 长连接的“服务器推”技术
颓废的老猫
博客等级 码龄25年 23粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值