引言 在石墨文档的部分业务中,例如文档分享.评论.幻灯片演示和文档表格跟随等场景,涉及到多客户端数据同步和服务端批量数据推送的需求,一般的 HTTP 协议无法满足服务端主动 Push 数据的场景,因此选择采用 WebSocket 方案进行业务开发. 随着石墨文档业务发展,目前日连接峰值已达百万量级,日益增长的用户连接数和不符合目前量级的架构设计导致了内存和 CPU 使用量急剧增长,因此我们考虑对网关进行重构. 网关 1.0 网关 1.0 是使用 Node.js 基于 Socket.IO 进行修改…
作业要求的博客链接:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505 分析产品:石墨文档Android客户端 第一部分 调研和评测 1.下载并使用,按照描述的bug定义,找3~5个功能性的比较严重的bug. BUG定义:软件的缺陷 BUGS: 1.1导入和导出文档格式错乱问题 图一是测试文档在电脑word的格式,可以看到有页眉和页码,图二是在手机wps打开测试文档,页眉和页码也存在,图三是将测试文件导入石墨文档中,出现文字排版错乱,…
服务器推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息,服务器发送一批数据,浏览器显示消息,同时保证与服务器的连接,当服务器需要再一次的发送数据,浏览器显示数据并保持连接. comet基于HTTP长连接技术,无需安装插件. comet:一个概念,web push pushlet:comet的一个实现. comet4j:也是comet的一个实现(comet4j开发指南 googlecode) 就是保持长连接的策略问题,有人用jquery写了相应的util Pushlet基于HTTP流…
关于石墨文档(Android)客户端的案例分析 作业地址:[https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505] 第一部分调研,评测 1.下载并使用,按照描述的bug定义,找3~5个功能性的比较严重的bug.请用专业的语言描述(每个bug 不少于 40字),如有必要,请配图. 答: Bug1:文字识别功能不准确,当我使用拍照和照片进行文字识别的时候,发现有一部分内容没有识别到,一部分出现错别字,还有一部分内容识别顺序有误,我认为这一部…
待分析的产品:石墨文档IOS客户端 作业地址: https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505   第一部分 调研, 评测 1.下载并使用,按照描述的bug定义,找3~5个功能性的比较严重的bug.请用专业的语言描述(每个bug 不少于 40字),如有必要,请配图. 下载了IOS客户端并进行了使用,界面简洁,扁平化的UI风格,符合当今APP设计的流行趋势,也契合IOS整体的系统风格: 没有更多的花里胡哨,功能专注于文档和表格方面,…
转自:http://kangrui.iteye.com/blog/2262860 众所周知_source字段存储的是索引的原始内容,那store属性的设置是为何呢?es为什么要把store的默认取值设置为no?设置为yes是否是重复的存储呢? 我们将一个field的值写入es中,要么是想在这个field上执行search操作(不知道具体的id),要么执行retrieve操作(根据id来检索).但是,如果不显式的将该field的store属性设置为yes,同时_source字段enabled的情况…
一.什么是http协议 HTTP是一个应用层协议,无状态的,端口号为80.主要的版本有1.0/1.1/2.0.   HTTP/1.* 一次请求-响应,建立一个连接,用完关闭: HTTP/1.1 串行化单线程处理,可以同时在同一个tcp链接上发送多个请求,但是只有响应是有顺序的,只有上一个请求完成后,下一个才能响应.一旦有任务处理超时等,后续任务只能被阻塞(线头阻塞): HTTP/2 并行执行.某任务耗时严重,不会影响到任务正常执行   二.什么是websocket   Websocket是htm…
目录 IoT推送系统 IoT是什么 IoT推送系统的设计 心跳检测机制 简述心跳检测 心跳检测机制代码示例 百万长连接优化 连接优化代码示例 TCP连接四元组 配置优化 IoT推送系统 IoT是什么 The Internet of things的简称IoT,即是物联网的意思,具体的知识请查阅:什么是Iot?什么是AIot? IoT推送系统的设计 比如说,像一些智能设备,需要通过APP或者微信中的小程序等,给设备发送一条指令,让这个设备下载或者播放音乐,那么需要做什么才可以完成上面的任务呢? 首先…
本文由腾讯云技术团队原创,感谢作者的分享. 1.前言   微信小程序提供了一套在微信上运行小程序的解决方案,有比较完整的框架.组件以及 API,在这个平台上面的想象空间很大.腾讯云研究了一番之后,发现微信支持 WebSocket 还是很值得玩味的.这个特性意味着我们可以做一些实时同步或者协作的小程序. 这篇文章分享了一个基于WebSocket长连接的微信小程序——简单的剪刀石头布小游戏的制作过程,希望能对想要在微信小程序中使用 WebSocket 的开发者有所帮助. 学习交流: - 即时通讯开发…
[转]转自知乎高票回答  https://www.zhihu.com/question/20215561 一.WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的keep-alive,把多个HTTP请求合并为一个,但是Websocket其实是一个新协议,跟HTTP协议基本没有关系,只是为了兼容现有浏览器的握手规范而已,也就是说它是HTTP协议上的一种补充可以…
语言平台 依赖注入方案 存储模型 1. 语言平台 Kooboo CMS基于.NET Framework 4.x,.NET Framework 4.x的一些技术特性成为站点开发人员使用Kooboo CMS必不可少的基础,为提升Kooboo CMS的用户体验来了极大的帮助,这些特别包括: dynamic关键字带来了流畅的数据操作体验 .NET4带来的dynamic关键字,可实现部分的动态语言特性.在Kooboo CMS中,所有的内容都是以key-value的形式存在.在语言对象的表达中,我们使用ID…
原文来自于: Comet技术原理 来自维基百科:Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流. 简单的说是一种基于现有Http协议基础上的长轮询技术,之所有会产生这种技术的主要原因是Http协议是无状态的所以客户端和服务端之间没办法建立起一套长时间的连接.比如我们要做一个聊天室,在Web环境下我们通常不能从服务端推送消息到浏览器里,而只能通过每个客户端不断的轮询服务器,以获取最新的消息,这样一来效率…
<script type="text/javascript">document.write("链接来源:"+document.referrer+"<br/>");document.write("当前网页文档的URL:"+document.URL);</script></head><body><h2> 淘宝网的商品购买页面:笔记本!数码相机!</h2&…
一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml文件所要用到的基础类 org.jdom.adapters:   包含DOM适配的Java类 org.jdom.filter:    包含xml文档的过滤类 org.jdom.input:   包含读取XML文档的Java类 org.jdom.output:      包含输出XML文档的类 org.…
一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作.通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制. DOM接口提供了一种通过分层对象模型来访问XML文档信息的方式,这些分层对象模型依据XML的文档结构形…
订阅 KLine 数据 market.$symbol.kline.$period 成功建立和 WebSocket API 的连接之后,向 Server 发送如下格式的数据来订阅数据: { "sub": "market.$symbol.kline.$period", "id": "id generate by client" } 参数名称 是否必须 类型 描述 默认值 取值范围 symbol true string 交易对  …
1. 访问地址 Pro 站行情请求地址为:wss://api.huobipro.com/ws HADAX 站行情请求地址为:wss://api.hadax.com/ws 2. 数据压缩 WebSocket API 返回的所有数据都进行了 GZIP 压缩,需要 client 在收到数据之后解压,推荐使用pako.([pako] 是一个支持压缩和解压 GZIP 的库) 3. WebSocket库 [ws] 是 Node.js 下的 WebSocket 库. 4. 心跳 WebSocket API 支…
使用场景: 在项目开发中,后端需要处理一连串的逻辑,或者等待第三方的数据返回来进行处理之后在返回给前端,可能时间会很长,而且前端也不知道后端什么时候能处理好(时间长的话会达到10分钟左右),如果采用普通的HTTP连接,前后端无法一直保持联系,麻烦的时候可能还需要采用轮询的机制,所以使用WebSocket连接效果还是比较好的. 使用时间: 在界面加载完之后,建上WebSocket连接,此时前端还可以发送普通的HTTP的请求,等到后端处理完之后,通过建立的WebSocket连接返给前端,前端根据返回…
1.websocket 连接代码 created() { this.initWebsocket() }, methods: { // 初始化websocket initWebsocket() { let _this = this let ws = new WebSocket(this.wsUrl) //保持连接 ws.onopen = () = > { // Web Socket 已连接上,使用 send() 方法发送数据 //console.log('数据发送中...') setInterva…
WebSocket API简介 WebSocket协议是基于TCP的一种新的网络协议.它实现了客户端与服务器之间在单个 tcp 连接上的全双工通信,由服务器主动发送信息给客户端,减少了频繁的身份验证等不必要的开销.其最大优点有两个: 两方请求的 header 数据很小,大概只有2 Bytes. 服务器不再是被动的接到客户端的请求后才返回数据,而是有了新数据后主动推送给客户端. 以上 WebSocket 协议带来的优点使得其十分适用于数字货币行情和交易这种实时性强的接口. Websocket 请求…
错误信息返回格式 { "id": "id generate by client", "status": "error", "err-code": "err-code", "err-msg": "err-message", "ts": 1487152091345 } 注:"ts" 为错误信息生成的时间戳,单位:…
Indri中的动态文档索引技术 戴维 译 摘要: Indri 动态文档索引的实现技术,支持在更新索引的同时处理用户在线查询请求. 文本搜索引擎曾被设计为针对固定的文档集合进行查询,对不少应用来说,这种机制工作得很好,然而对于诸于新闻,财经和桌面搜索而言,需要的是高效.经常性的更新索引. 以往支持动态文档集合的研究主要围绕增量索引方法,增量系统通过往已有的索引中追加大的文档集合来优化索引性能,但是不允许在增量索引的同时处理用户查询. 与以往的增量系统不同,Indri搜索引擎的最新版本支持动态文档集…
原文链接:http://www.cnblogs.com/deepleo/p/Comet.html 一.背景介绍 传统web请求,是显式的向服务器发送http Request,拿到Response后显示在浏览器页面上.这种被动的交互方式不能满足对信息实时性要求高的应用,譬如聊天室.股票交易行情.在线游戏等.Ajax轮询虽然可以解决这个问题,但是会带来增加服务器负担.带宽浪费,并且这种实现方式不够优雅.而Comet技术就是为此而生的. 本文只探讨基于浏览器的web端服务器推技术.服务器推技术在现实应…
原文:http://blog.csdn.net/everlastinging/article/details/10894493 注:如果用此服务器做变长data的传输,请在业务处理函数中为input buffer增加清空功能(一行memset搞定:也可以在mariotcp核心代码mario_network.c的read功能中增加,mariotcp为了追求性能极限没做此设置). mario_network.c 文件的 on_conn_read()函数中: memset(c->in_buf,'\0'…
连接SQLServer2005失败,错误信息: 错误类型:Microsoft OLE DB Provider for ODBC Drivers (0x80004005)[Microsoft][ODBC SQL Server Driver][DBNETLIB]一般性网络错误.请检查网络文档. 我的连接字符串是:driver={SQL Server};Server=192.168.10.139;database=TestFax;Uid=sa;pwd=xxxx; 奇怪的是,我将Server处写(loc…
一.什么是http协议 HTTP是一个应用层协议,无状态的,端口号为80.主要的版本有1.0/1.1/2.0.   HTTP/1.* 一次请求-响应,建立一个连接,用完关闭: HTTP/1.1 串行化单线程处理,可以同时在同一个tcp链接上发送多个请求,但是只有响应是有顺序的,只有上一个请求完成后,下一个才能响应.一旦有任务处理超时等,后续任务只能被阻塞(线头阻塞): HTTP/2 并行执行.某任务耗时严重,不会影响到任务正常执行   二.什么是websocket   Websocket是htm…
本文大部分内容翻译总结自<Software Engineering at Google> 第10章节 Documentation. 另外,该书电子版近日已经可以免费下载了 https://abseil.io/resources/swe_at_google.2.pdf,有兴趣的同学可以下载翻阅下. 首先声明,本问所说的文档不仅限于纯文本文档,还包含代码注释(注释也是一种特殊形式的文档). 很多技术人自己非常轻视技术文档的书写,然而又时常抱怨文档不完善.质量差.更新不及时-- 这种在程序猿间普遍存…
本文转自:http://www.cnblogs.com/blodfox777/archive/2009/11/03/1595223.html 最近需要为网站加入支付宝的充值接口,而目前关于支付宝接口开发的资料比较杂乱,这里就我此次开发所用到的资料进行汇总整理,希望能够帮助需要的朋友. 开发步骤: 1. 确定签约类型 支付宝的接口有多种类型,所以首先你要确定签约的合同类型,确定使用的是哪个接口,不至于走错了道道. 此步骤中,可以参考文档:支付宝接口操作教程 2. 下载开发文档 如果是即时到账的开发…
支付宝接口使用文档说明 支付宝异步通知(notify_url)与return_url. 现支付宝的通知有两类. A服务器通知,对应的参数为notify_url,支付宝通知使用POST方式 B页面跳转通知,对应的参数为return_url,支付宝通知使用GET方式 (通知地址不需要像以前一样去账户内设置,而是由客户在支付的时候通过参数传递给我地址. 例 如 notify_url=http://www.xxx.com/notify_alipay.asp 注意:www.XXX.com是您网站的域名,也…
作者 | 刘博(又拍云多媒体开发工程师) 当前为了满足比较火热的移动 Web 端直播需求,一系列的 HTML5 直播技术迅速的发展起来. 常见的可用于 HTML5 的直播技术有 HLS.WebSocket 与 WebRTC.今天我向大家介绍WebSocket 与 MSE 相关的技术要点,并在最后通过一个实例来展示具体用法. 文章大纲 WebSocket 协议介绍 WebSocket Client/Server API介绍 MSE 介绍 fMP4 介绍 Demo 展示 WebSocket 通常的…