websocket在慕课网中的应用
网上资料都是介绍概念,我们来看看实际网站怎么使用websocket的吧。限于自身水平解读并不深入,慕课网上的websocket某些字段不知何用。
是什么
是一种应用层协议,有html5而推出,是一种全双工的通信协议,不仅客户端可以主动向服务端发送信息,服务端也可以主动向客户端发送信息。
为什么
比如更新天气,比如聊天室,如果用ajax去轮询耗时,可能header比较大,所以浪费时间吧。而websocket可以主动推送信息给客户端,头比较小。
怎么用
如果是websocket那么http协议header字段upgrade会有websocket标志。
前端js代码,new websocket,send方法发送
后端springboot引入maven以来,配置endpoint,使用注解onmessage,onstart,可以获得链接过来的客户端id。
谁再用?
慕课网,我们看到它使用了websocket,

他的协议头是wss而不是http,我们看到他用的get方法,网上说他是先通过http请求建立tcp链接,然后再转型成websocket。
返回码看到是101 Switching Protocols
与websocket有关的响应头:

请求头:

慕课网使用websocket发送了那些消息呢?

箭头抄下的应该是服务器发送到客户端的,里面有pingInterval,这个应该是心跳的功能,每30秒发送一次。你看数据2,3就是心跳,14:04:25然后30秒之后14:04:55又接发了一次2,3 。
pingTimeout应该是心跳超时吧,如果50秒没有心跳,就说明这个链接断掉了。
sid不知道是标识啥的

这里面只有url是我当前的浏览器访问的页面,其他字段暂时不知道意味着什么?

这条记录我测试出来了,他表示我个人账户的消息

之前我这个小铃铛有一条未读消息,然后这个unreads字段就一直是1,然后我看完这个未读消息他就变成0了。
websocket在慕课网中的应用的更多相关文章
- 慕课网中网页定位导航中js相关问题总结
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- Node.js爬虫-爬取慕课网课程信息
第一次学习Node.js爬虫,所以这时一个简单的爬虫,Node.js的好处就是可以并发的执行 这个爬虫主要就是获取慕课网的课程信息,并把获得的信息存储到一个文件中,其中要用到cheerio库,它可以让 ...
- 慕课网-Java入门第一季-7-2 Java 中无参无返回值方法的使用
来源:http://www.imooc.com/code/1578 如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法. 方法的使用分两步: 第一步,定义方法 例如:下面代码定义了一个方法名 ...
- es6 Object.assign ECMAScript 6 笔记(六) ECMAScript 6 笔记(一) react入门——慕课网笔记 jquery中动态新增的元素节点无法触发事件解决办法 响应式图像 弹窗细节 微信浏览器——返回操作 Float 的那些事 Flex布局 HTML5 data-* 自定义属性 参数传递的四种形式
es6 Object.assign 目录 一.基本用法 二.用途 1. 为对象添加属性 2. 为对象添加方法 3. 克隆对象 4. 合并多个对象 5. 为属性指定默认值 三.浏览器支持 ES6 O ...
- 使用js脚本批量下载慕课网视频
慕课网(http://www.imooc.com/)上有很多不错的视频,当然我不是来给慕课网打广告的,我本人学习过很多慕课网上的免费的视频. 在线看如果网速慢时,可能会有卡顿,没网时无法观看.所有说下 ...
- 安卓开发_慕课网_ViewPager实现Tab(App主界面)
学习内容来自“慕课网” 网站上一共有4种方法来实现APP主界面的TAB方法 这里学习第一种 ViewPager实现Tab 布局文件有7个, 主界面acitivity.layout <Linear ...
- 慕课网-安卓工程师初养成-4-9 Java循环语句之 for
来源:http://www.imooc.com/code/1425 Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换. 语法: 执行过程: ...
- 慕课网-安卓工程师初养成-4-8 Java循环语句之 do...while
do...while 循环与 while 循环语法有些类似,但执行过程差别比较大. 语法: 执行过程: <1>. 先执行一遍循环操作,然后判断循环条件是否成立 <2>. 如果 ...
- 慕课网-安卓工程师初养成-4-7 Java循环语句之 while
来源: http://www.imooc.com/code/1420 生活中,有些时候为了完成任务,需要重复的进行某些动作.如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈.在 ...
随机推荐
- .NET 6 Preview 6 正式发布: 关注网络开发
微软.NET 团队的项目经理在博客上发布了.NET 6 Preview 6, 在候选发布阶段之前的倒数第二个预览版,也就是8月份还会发布一个Preview 7,9月份开始进入RC,两个候选版本将专注 ...
- Vue Router的原理及history模式源码实现
Hash 模式 URL中 # 后面的内容作为路径地址,可以通过location.url直接切换路由地址,如果只改变了#后面的内容,浏览器不会向服务器请求这个地址,会把这个地址 记录到浏览器的访问历史中 ...
- Java on Visual Studio Code的更新 – 2021年6月
Nick Zhu from Microsoft VS Code Java Team 大家好,欢迎来到 Visual Studio Code Java 更新的特别年中版.作为这篇文章的重点,我们将看看接 ...
- 「CF1380G」 Circular Dungeon
CF1380G Circular Dungeon 看懂样例就能做. 虽然我瞪了 20 分钟 菜是原罪 首先可以将从每一个点出发所能获得的价值相加,再除以 \(n\) 就可以得到价值的期望. 所以问题转 ...
- 团队开发day04
通过myurl.openConnection()连接一直连接失败,问题解决: 在一般的Java Web程序开发中,我们通常使用localhost或者127.0.0.1来访问本机的Web服务, 但是如果 ...
- 微信小程序云开发-数据库-获取用户添加的数据到数据库
一.列表页面新增[添加商品]按钮 在列表页增加[添加商品]按钮,按钮绑定事件toAdd(),用户点击该按钮跳转到添加商品页面. 在js文件中写toAdd()函数,作用是点击[添加商品]按钮,跳转到[添 ...
- Windows10 64位解决无法使用Microsoft.Jet.OLEDB.4.0的方法
本机软件环境:Windows10 64位+Office2003 (32位) ============================================= 1.下载 ACE2010的驱动, ...
- 用activiti实现类似钉钉审批流程-附整个系统源码
前言 目前市场上有很多开源平台没有整合工作流,即使有,也是价格不菲的商业版,来看这篇文章的估计也了解了行情,肯定不便宜.我这个快速开发平台在系统基础功能(用户管理,部门管理-)上整合了工作流,你可以直 ...
- 声明提前(hoist)
程序执行前,都会先找到var声明的变量和function声明的函数. 一.var声明的变量 程序 结果 console.log(a); var a=10; console.log(a); //unde ...
- 解决移动端在IOS中input输入框光标过长
在输入框样式中加入: line-height:20px;