WebSockets的9大杀手级功能

转载 2013年12月05日 20:08:31

用户要求在尽可能短的时间内获得信息,等你刷新页面才能更新信息,就太迟了!好在有一种协议WebSockets,它允许直接数据交换,并且支持所有的现代浏览器。

没有任何一种解决方案像WebSockets一样能够提供真正的双向沟通,虽然仍有许多Web开发人员依赖基于AJAX的这种长轮询(long polling)方式(声明一下,我个人认为长轮询有高度创造性和功能性,但其不过是Hack方法而已)。以前人们对WebSockets的关注不多,大概有两个原因,一是几年前还存在一些安全漏洞,二是当时的浏览器不能完全支持它。不过这两点现在已不再是问题了。

考虑以下两个方面的需求可以帮助选择要不要使用WebSockets:

  • 你的应用程序需要供很多人同时在线交流吗?
  • 是否窗口服务器端数据不断变化?

但凡涉及其中任一需求,我建议你使用WebSockets。如果还不确定结论,那么接下来我将为大家介绍WebSockets的几个最实用的功能。

1.社交需求

社交应用给大家的福利之一,就是让你随时获知朋友们都在做什么。听上去有点变态,但确实大多数人都喜爱这一点。人们想要在第一时间知道有关家人或者朋友的资讯,社交应用必须满足大家这一需求,随时提供给大家最新的实时友人动态信息。

2.多玩家游戏

如今网络越来越被大家熟知其游戏平台的功能,不需要依靠任何插件(甚至不用Flash),网站开发者已经知道如何在浏览器上实现完美的游戏画面。不管你用的是DOM元素、CSS动画、HTML5画布、还是WebGL之类的,多个玩家之间的互动都是非常重要的。

3.协同编码

现在更多是分散式的开发团队,大家分别处理一个文档副本,最后再把所有人的工作整合到一起。类似Git这样的版本控制系统对处理某些文档很有帮助,但有很多文档冲突是Git无法解决的,还需要追踪到编写这段代码的个人。使用WebSockets中的协同解决方案,所有人同时处理同一个文档,跳过合并步骤,而且能看到其他人正在编写的代码是否与自己处理的程序段相同,结果是减少重复性工作,并使文档整体一致性增强。(极客标签的Live课程就使用了类似的技术)

4.点击流数据

分析用户如何与网站互动,对于完善与提高网站内容有着至关重要的作用。HTTP成本迫使我们优先择优与收集最重要的数据,六个月过去了,我们才意思到本应该收集一个不同的指标数据——虽然它好像无关紧要,但其将在一个至关重要的决定方面有所指引。随着HTTP请求开销减少,你可以较少的限制从客户机发送的数据。除了页面加载,你还想追踪鼠标移动轨迹?只需通过WebSocket连接发送数据到后端,并将其保存在你喜欢的NoSQL存储即可。然后就可以回放客户交互看看当时发生了什么情况。

5.金融行情

金融界变化迅猛——可以说微秒级的变化。我们的大脑无法那么快速的处理数据,所以要编写不同的算法帮助我们达到目的。即使你不用处理高频交易,陈旧的信息只有坏处没有好处。如果你有一个仪表盘跟踪你感兴趣的公司,你想要知道的是现在/此刻公司的价值是多少,而非10秒前的价值。使用WebSockets数据流,再也不用等待!

6.体育比赛更新

让我们来谈谈人们热衷讨论的话题——运动比赛。我本人不是个球迷,但我知道大家都喜欢看哪类比赛。当爱国者比赛的时候,我哥哥简直无法抗拒诱惑。这是一种近乎暴力的恍惚状态,本能反应。我反正不能理解,不过我很尊重这种执着,所以我最不希望发生的就是让执着于运动的人们不能及时看比赛。如果你的应用程序中涉及体育比赛的信息,强烈建议使用WebSockets增强更新速度。

7.多媒体聊天

虽然一群人面对面举行会议是无法取代的一种形式,但当无法在同一地点聚集所有人时,采用视频会议能达到同样的目的。视频会议往往需要繁琐的接线以及所有参与者的耐心。我是网络开放的追求者,所以我认为WebSockets的getUserMedia API's以及HTML5音频与视频元素的组合才是正确的选择。WebRTC是该组合的逻辑前身,看上去蛮有前途,但最终由于缺乏浏览器支持而落后到第二的位置。(极客标签的协作工具使用了webRTC)

8.基于定位的应用

越来越多的开发人员利用移动设备的GPS功能,使他们的应用能够获取定位。假如在一定时间段内追踪用户定位轨迹(例如运行一个应用程序沿着用户行进的路线定位追踪),将收集到细粒数据。如果需要实时更新Web仪表盘(比如一个田径教练用来检测运动员的速度),HTTP将是不必要的笨重。让TCP连接运用WebSockets吧,数据会飞快传输。

9.网络教育

如今学校的学费越来越贵,而互联网发展的更快,其成本更低。网络教育是学习的极好途径,特别是如果可以与老师和其他同学互动最好不过了。WebSockets自然而然是最好的选择,它允许多人聊天、文本聊天甚至支持多人在同一块公共数字黑板上写字等其他福利,如果你参加过极客标签社区里的Live课程的话,应该很熟悉类似的功能。

http协议:http请求、http响应、间隔时间跳转页面、禁用浏览器缓存

http协议 1. http协议是建立在  tcp/ip协议基础上. 2. 我们的web开发数据的传输都是依赖于http协议. 3. http协议全称是 超文本传输协议 http协议的-htt...

Mina源码阅读笔记(五)—Mina对连接的操作IoSession

mina

基于IMOOC强力django+杀手级xadmin 打造上线标准的在线教育平台课程的学习(9)——Course models.py的设计

编码是要注意符合 PEP 8 规范from datetime import datetimefrom django.db import models class Course(models.Model...

八款主流浏览器的“杀手级”功能

本文将对比八种国内最常用的PC浏览器,找出它们各自的亮点以及“杀手级”功能,所有浏览器都是基于Windows平台。和杀毒软件不一样,浏览器之间虽然也竞争激烈,却不存在兼容性的问题,因此以下8种浏览器皆...

使用 WebSockets 的 9 个应用场景

没有其他技术能够像WebSocket一样提供真正的双向通信,许多web开发者仍然是依赖于ajax的长轮询来实现。(注:我认为长轮询是富于创造性和多功能性的,虽然这只是一个不太完美的解决办法(hack)...

HTML5 WebSockets功能的例子

Index.html代码如下: Web Sockets 示例 Web Sockets 示例 登录 注销 ...
  • WuLex
  • WuLex
  • 2016年07月18日 00:15
  • 1440

vim中的杀手级插件: vundle (vim插件管理器)

相比sublime text2等现代编辑器,Vim缺乏默认的插件管理器,所有插件的文件都散布在~/.vim下的几个文件夹中,配置vim的过程, 就是在网上不停的搜插件,拷贝到~/.vim下,发现更新,...

基于IMOOC强力django+杀手级xadmin 打造上线标准的在线教育平台课程的学习(13)——xadmin介绍

xadmin的安装方法settings.py 的配置# -*- coding:utf-8 -*- import os import sysimport pymysql pymysql.install_...

基于IMOOC强力django+杀手级xadmin 打造上线标准的在线教育平台课程的学习(15)——xadmin的扩展

应该是 use_bootswacth 首页多了一个主题设置按钮:可以选择不同的主题:import xadmin from xadmin import viewsfrom .models import...

7个杀手级的开源监测工具

想要更清晰的了解你的网络吗?没有比这几个免费的工具更好用的了。 网络和系统监控是一个很宽的范畴。有监控服务器、网络设备、应用正常工作的方案,也有跟踪这些系统和设备性能,提供趋势性能分析的...
  • achejq
  • achejq
  • 2015年12月07日 19:17
  • 866
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WebSockets的9大杀手级功能
举报原因:
原因补充:

(最多只允许输入30个字)