websocket的用途/场景

websocket的用途/场景

先总结:高即时性服务,比如聊天室的群聊,server顺序收到了张三,李四的消息,立即就推送给王五,不能让王五等半天。
Ajax也可以一秒一刷,让王五去问张三说话没,如果张三10分钟没说话,王五要去问600次。 用websocket 王五不用刷,等着就好了,服务器有了消息会自动给王五的。

1.websocket社交订阅
对社交类的应用的一个裨益之处就是能够即时的知道你的朋友正在做什么。虽然听起来有点可怕,但是我们都喜欢这样做。你不会想要在数分钟之后才能知道一个家庭成员在馅饼制作大赛获胜或者一个朋友订婚的消息。你是在线的,所以你的订阅的更新应该是实时的。

2.websocket多玩家游戏

网络正在迅速转变为游戏平台。在不使用插件(我指的是Flash)的情况下,网络开发者现在可以在浏览器中实现和体验高性能的游戏。无论你是在处理DOM元素、css动画,html5的canvas或者尝试使用WebGL,玩家之间的互动效率是至关重要的。我不想在我扣动扳机之后,我的对手却已经移动位置。

3.websocket协同编辑/编程

我们生活在分布式开发团队的时代。平时使用一个文档的副本就满足工作需求了,但是你最终需要有一个方式来合并所有的编辑副本。版本控制系统,比如Git能够帮助处理某些文件,但是当Git发现一个它不能解决的冲突时,你仍然需要去跟踪人们的修改历史。通过一个协同解决方案,比如WebSocket,我们能够工作在同一个文档,从而省去所有的合并版本。这样会很容易看出谁在编辑什么或者你在和谁同时在修改文档的同一部分。

4.websocket收集点击流数据

分析用户与你网站的互动是提升你的网站的关键。HTTP的开销让我们只能优先考虑和收集最重要的数据部分。然后,经过六个月的线下分析,我们意识到我们应该收集一个不同的判断标准——一个看起来不是那么重要但是现在却影响了一个关键的决定。与HTTP请求的开销方式相比,使用Websocket,你可以由客户端发送不受限制的数据。想要在除页面加载之外跟踪鼠标的移动?只需要通过WebSocket连接发送这些数据到服务器,并存储在你喜欢的NoSQL数据库中就可以了(MongoDB是适合记录这样的事件的)。现在你可以通过回放用户在页面的动作来清楚的知道发生了什么。

5.股票基金报价

金融界瞬息万变——几乎是每毫秒都在变化。我们人类的大脑不能持续以那样的速度处理那么多的数据,所以我们写了一些算法来帮我们处理这些事情。虽然你不一定是在处理高频的交易,但是,过时的信息也只能导致损失。当你有一个显示盘来跟踪你感兴趣的公司时,你肯定想要随时知道他们的价值,而不是10秒前的数据。使用WebSocket可以流式更新这些数据变化而不需要等待。

6.体育实况更新

现在我们开始讨论一个让人们激情澎湃的愚蠢的东西——体育。我不是运动爱好者,但是我知道运动迷们想要什么。当爱国者在打比赛的时候,我的妹夫将会沉浸于这场比赛中而不能自拔。那是一种疯狂痴迷的状态,完全发自内心的。我虽然不理解这个,但是我敬佩他们与运动之间的这种强烈的联系,所以,最后我能做的就是给他的体验中降低延迟。如果你在你的网站应用中包含了体育新闻,WebSocket能够助力你的用户获得实时的更新。

7.多媒体聊天

视频会议并不能代替和真人相见,但当你不能在同一个屋子里见到你谈话的对象时,视频会议是个不错的选择。尽管视频会议私有化做的“不错”,但其使用还是很繁琐。我可是开放式网络的粉丝,所以用WebSockets getUserMedia API和html5音视频元素明显是个不错的选择。WebRTC的出现顺理成章的成为我刚才概括的组合体,它看起来很有希望,但其缺乏目前浏览器的支持,所以就取消了它成为候选人的资格。

8.基于位置的应用

越来越多的开发者借用移动设备的GPS功能来实现他们基于位置的网络应用。如果你一直记录用户的位置(比如运行应用来记录运动轨迹),你可以收集到更加细致化的数据。如果你想实时的更新网络数据仪表盘(可以说是一个监视运动员的教练),HTTP协议显得有些笨拙。借用WebSocket TCP链接可以让数据飞起来。

9.在线教育

上学花费越来越贵了,但互联网变得更快和更便宜。在线教育是学习的不错方式,尤其是你可以和老师以及其他同学一起交流。很自然,WebSockets是个不错的选择,可以多媒体聊天、文字聊天以及其它优势如与别人合作一起在公共数字黑板上画画…

10.论坛的消息广播
早期的论坛消息通知,靠的都是js轮询,现在有了websocket 可以改改了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

websocket学习总结记录

Websocket 1.基本概念 WebSocket是一种网络通信协议。 websocket和http 的区别,http的缺陷,只能从客户端发起请求(单项请求)不能从服务器发起请求。如果服务器有连续性的变化时,如果我们想要每一个时刻都获得最新的…

php分列显示,【杂谈】PHP数组怎样按键名完成降序分列

PHP关联数组按键名完成降序分列,我们能够直接经由过程PHP中的krsor()函数来完成。krsort函数示意对数组根据键名逆向排序。那末在前面的文章中,已给人人引见过PHP关联数组按键名完成升序分列的要领。下面我们继承连系简朴的示例,给人人引见PH…

spike 序列matlab,SPKtool1.0.1 神经信号spike 分类及处理 工具包 matlab 238万源代码下载- www.pudn.com...

文件名称: SPKtool1.0.1下载收藏√ [5 4 3 2 1 ]开发工具: matlab文件大小: 937 KB上传时间: 2013-03-05下载次数: 3提 供 者: 无语详细说明:神经信号spike 分类及处理 工具包-A toolbox for neurophysiological data processing文件列表(点击判断是否您需要的…

cuda加速求解龙格库塔四阶五步积分

一般代码使用cuda加速的方法: 使用PyTorch进行加速: 首先,你需要将你的ODE系统定义为PyTorch模型,这样可以利用PyTorch的自动微分功能和GPU加速。然后,你需要将数据和参数转换为PyTorch张量,并将它们移动到…

Idea怎么实现画类图

1.【file】-【Settings】-【Tools】-【Diagrams】-勾选Java Class Diagram的选项 2.右击类,【Diagrams】-【Show Diagram】

如何在linux下创建一个可运行shell脚本?

linux系统下,经常会用到自启动脚本,那么如何新建一个自启动脚本? 工具/原料 linux系统 方法/步骤 1 新建一个.sh文件,touch test.sh 2 编辑test.sh文件,vi test.sh 然后键入i,输入内容, #!…

matlab compiler 与matlab coder 区别,MATLAB编译器与MATLAB编码器

MATLAB编译器将您的MATLAB代码(保留为MATLAB .m代码)进行encryption和归档,并将其打包为一个精简的可执行文件(.exe或.dll)包装器。 这是随MATLAB编译器运行时(MCR)一起提供给最终用户的。 如果你愿意,MCR也可以打包在可执行文件中。MCR可以自由的重新分…

TCP 协议(包含三次握手,四次挥手)

文章目录1.确认应答机制 (ACK)2.超时重传3.1建立连接 - 三次握手 ▲3.2.断开连接 - 四次挥手 ▲1.确认应答机制 (ACK) 确认应答是可靠传输的最核心机制 接收方反馈一个应答报文(ACK),表示已收到 假设现在 A 想去 B 家里玩游戏,于是 A 给 B 发消息&…

php txtsql 说明,PHP学习笔记(2)txtSQL文档错误

PHP学习笔记(2)txtSQL文档错误次阅读在使用txtSQL的过程中,发现一处帮助文档错误。在使用altertable命令改变表名称时,发现如果按照帮助文档所说,使用如下代码无法改变表的名称:$sql->altertable(array(db>$db_name,table&g…

php中cookie存的是什么,PHP中Cookie存在的作用和用法

1、使用$_COOKIE读取Cookie使用Session只能让网站记住当前正在访问的用户,但有时网站还需要记住曾经访问过的用户,以便在用户下次访问时.提供个性化的服务。这就需要用到Cookie技术。Cookie能为网站和用户带来很多好处.如它可以记录特定用户访问网站的次…

Redis使用单线程却快到飞起的原因

文章目录Redis为什么用单线程?多线程的开销Redis使用单线程为什么还这么快?网络与IO操作的潜在阻塞点基于多路复用的高性能IO模型回调机制Redis的性能瓶颈点其他Redis相关的有趣问题1. 为什么要用Redis,直接访问内存不好吗?2. 数据…

线程池参数到底要怎么配?

文章目录1 线程池快速回顾2 现有设置参数的方法及不足3 如何设置核心线程数(corePoolSize)4 如何设置最大线程数(maxPoolSize)5 如何改变等待队列长度想必大家对Java里面线程池( 类)一定不陌生吧&#xff0…

oracle嵌套三层循环语句,在存储过程中执行3种oracle循环语句

http://www.cnblogs.com/coprince/p/3443219.htmlcreate or replace procedure pr_zhaozhenlong_loop/*名称:在存储过程中执行3种循环语句功能:利用循环给表中插入数据调用:begin-- Call the procedurepr_zhaozhenlong_strsql;end;创建人&…

彻底搞懂Cookie、Session、JWT和Token

文章目录引入:http是一个无状态协议?怎么解决呢?一、Cookie和Session1.1 cookie 注意事项:1.2 cookie 重要的属性1.3 session 注意事项:1.4 Cookie 和 Session 的区别:二、token(令牌&#xff0…

oracle数据库导入txt,oracle数据库导入TXT文件方法介绍

客户端连接数据库导入1. 安装有oracle客户端,配好监听。2. 以oracle数据库app用户的表user_svc_info为例CREATE TABLE USER_SVC_INFO(PHONE varchar2(20) NOT NULL,SVC_ID varchar2(32) NOT NULL,P_USERNAME varchar2(100) NULL,USER_STATUS number NOT NULL ,P_ALI…

你真的知道什么是多线程吗?为什么要学习多线程?

文章目录1、多线程的含义2、原理3、优势4、线程与进程的区别5、线程与多线程的区别6、线程调度的分类7、同步与异步8、并发与并行9、为什么要使用线程池10、线程池的好处11、线程池的分类12、意义1、多线程的含义 多线程(multithreading),是…

oracle 表关联索引优化,Oracle执行计划调优-超级大表关联超级小表的性能调优

今日客户现场出现一个查询SQL异常慢的情况。用时分钟级别。SELECT *FROM (SELECT a1.*, rownum rnFROM (SELECT openOrder2017.exchId,............openOrder2017.internalbizmark,customer.typeIdListFROM openOrder2017, customerWHERE openOrder2017.custId customer.custI…

Common Sort - 排序 - Java

文章目录排序概念稳定性(重要)应用 - 举例1.、各大商城的价格从低到高等2、中国大学排名常见的排序算法(8 种)- 总览直接插入排序模拟实现 - 插入排序稳定性分析结论希尔排序思考原理科学家的分组思维模拟实现 - 希尔排序总结选择…

linux的运行级别如何更改成6,把Linux运行级别设置为6后如何解决的经验分享

我们知道,Linux有7个运行级别,而运行级别设置为6后,会导致Linux系统刚启动完成就立刻重启,重启后又会立刻重启,如此反复,导致系统不能正常运行。本文笔者和大家分享一下误把Linux运行级别设置为6后如何解决…

flume linux 命令,Linux环境Flume安装配置及使用

# Flume监听本地Linux-hive日志文件采集到HDFS——配置文件# Name the components on this agent agent别名设置a1.sources r1a1.sinks k1a1.channels c1# Describe/configure the source 设置数据源监听本地文件配置# exec 执行一个命令的方式去查看文件 tail -F 实时查看a…