`

使用 WebSockets 技术的 9 个应用场景

阅读更多
  没有其他技术能够像WebSocket一样提供真正的双向通信,许多web开发者仍然是依赖于ajax的长轮询来实现。对Websocket缺少热情,也许是因为多年前他的安全性的脆弱,抑或者是缺少浏览器的支持,不管怎样,这两个问题都已经被解决了。


  决定手头的工作是否需要使用WebSocket技术的方法很简单:
你的应用提供多个用户相互交流吗?
你的应用是展示服务器端经常变动的数据吗?
  如果你的回答是肯定的,那么请考虑使用WebSocket。如果你仍然不确定,并想要更多的灵感,这有一些杀手锏的案例。
  1.社交订阅
  对社交类的应用的一个裨益之处就是能够即时的知道你的朋友正在做什么。虽然听起来有点可怕,但是我们都喜欢这样做。你不会想要在数分钟之后才能知道一个家庭成员在馅饼制作大赛获胜或者一个朋友订婚的消息。你是在线的,所以你的订阅的更新应该是实时的。
  2.多玩家游戏
  网络正在迅速转变为游戏平台。在不使用插件(我指的是Flash)的情况下,网络开发者现在可以在浏览器中实现和体验高性能的游戏。无论你是在处理DOM元素、CSS动画,HTML5的canvas或者尝试使用WebGL,玩家之间的互动效率是至关重要的。我不想在我扣动扳机之后,我的对手却已经移动位置。
  3.协同编辑/编程
  我们生活在分布式开发团队的时代。平时使用一个文档的副本就满足工作需求了,但是你最终需要有一个方式来合并所有的编辑副本。版本控制系统,比如Git能够帮助处理某些文件,但是当Git发现一个它不能解决的冲突时,你仍然需要去跟踪人们的修改历史。通过一个协同解决方案,比如WebSocket,我们能够工作在同一个文档,从而省去所有的合并版本。这样会很容易看出谁在编辑什么或者你在和谁同时在修改文档的同一部分。
  4.点击流数据
  分析用户与你网站的互动是提升你的网站的关键。HTTP的开销让我们只能优先考虑和收集最重要的数据部分。然后,经过六个月的线下分析,我们意识到我们应该收集一个不同的判断标准——一个看起来不是那么重要但是现在却影响了一个关键的决定。与HTTP请求的开销方式相比,使用Websocket,你可以由客户端发送不受限制的数据。想要在除页面加载之外跟踪鼠标的移动?只需要通过WebSocket连接发送这些数据到服务器,并存储在你喜欢的NoSQL数据库中就可以了(MongoDB是适合记录这样的事件的)。现在你可以通过回放用户在页面的动作来清楚的知道发生了什么。
  5.股票基金报价
  金融界瞬息万变——几乎是每毫秒都在变化。我们人类的大脑不能持续以那样的速度处理那么多的数据,所以我们写了一些算法来帮我们处理这些事情。虽然你不一定是在处理高频的交易,但是,过时的信息也只能导致损失。当你有一个显示盘来跟踪你感兴趣的公司时,你肯定想要随时知道他们的价值,而不是10秒前的数据。使用WebSocket可以流式更新这些数据变化而不需要等待。
  6.体育实况更新
  现在我们开始讨论一个让人们激情澎湃的愚蠢的东西——体育。我不是运动爱好者,但是我知道运动迷们想要什么。当爱国者在打比赛的时候,我的妹夫将会沉浸于这场比赛中而不能自拔。那是一种疯狂痴迷的状态,完全发自内心的。我虽然不理解这个,但是我敬佩他们与运动之间的这种强烈的联系,所以,最后我能做的就是给他的体验中降低延迟。如果你在你的网站应用中包含了体育新闻,WebSocket能够助力你的用户获得实时的更新。
  7.多媒体聊天
  视频会议并不能代替和真人相见,但当你不能在同一个屋子里见到你谈话的对象时,视频会议是个不错的选择。尽管视频会议私有化做的“不错”,但其使用还是很繁琐。我可是开放式网络的粉丝,所以用WebSockets getUserMedia API和HTML5音视频元素明显是个不错的选择。WebRTC的出现顺理成章的成为我刚才概括的组合体,它看起来很有希望,但其缺乏目前浏览器的支持,所以就取消了它成为候选人的资格。
  8.基于位置的应用
  越来越多的开发者借用移动设备的GPS功能来实现他们基于位置的网络应用。如果你一直记录用户的位置(比如运行应用来记录运动轨迹),你可以收集到更加细致化的数据。如果你想实时的更新网络数据仪表盘(可以说是一个监视运动员的教练),HTTP协议显得有些笨拙。借用WebSocket TCP链接可以让数据飞起来。
  9.在线教育
  上学花费越来越贵了,但互联网变得更快和更便宜。在线教育是学习的不错方式,尤其是你可以和老师以及其他同学一起交流。很自然,WebSockets是个不错的选择,可以多媒体聊天、文字聊天以及其它优势如与别人合作一起在公共数字黑板上画画...


转自:http://www.oschina.net/translate/9-killer-uses-for-websockets?p=2#comments
分享到:
评论

相关推荐

    LaravelWebSockets为Laravel应用添加WebSockets功能

    在现代Web开发中,实时通信成为了不可或缺的一部分,WebSockets技术因其双向通信的能力而备受青睐。本文将深入探讨如何使用LaravelWebSockets为Laravel应用程序添加WebSockets功能,使其能够实现实时数据传输,提高...

    grizzly-websockets-2.3.4.zip

    《Grizzly WebSockets 2.3.4与Riak PB:开源项目的协同工作》 ...对于想要深入理解和应用这些技术的开发者来说,理解和掌握这两个项目的核心原理以及它们的集成方式,无疑是提升自身技术水平和解决实际问题的关键。

    flask_websockets:使用flask的Websockets教程代码

    这时,WebSockets技术就派上用场了。WebSockets提供了一种持久的连接方式,允许服务器与客户端进行实时交互。本教程将深入探讨如何在Flask中集成WebSockets功能。 首先,我们需要安装`flask-socketio`库,它是Flask...

    HTML5 WebSockets基础使用教程

    ### HTML5 WebSockets基础使用教程 #### 一、引言 HTML5为现代Web开发引入了许多激动人心的新特性,其中WebSockets是一项值得关注...未来随着更多浏览器的支持和技术的进步,WebSockets将在更多的应用场景中发挥作用。

    使用websockets实现Signalhub_JavaScript_HTML_下载.zip

    在本项目中,"使用websockets实现Signalhub_JavaScript_HTML_下载.zip" 提供了一个使用WebSocket技术与Signalhub服务交互的示例。Signalhub是一个用于实时数据分发的简单服务,特别适合于浏览器应用。 WebSocket ...

    grizzly-websockets-chat-2.3.zip

    标题 "grizzly-websockets-chat-2.3.zip" 暗示了这是一个使用Grizzly框架实现的WebSocket聊天应用的版本2.3。Grizzly是Java的一个开源网络应用框架,特别适用于构建高性能、轻量级的服务器端应用。WebSocket协议则是...

    Wetty使用Node.js和websockets开发的一个开源Web-basedSSH

    Wetty是一个基于Node.js和WebSockets技术的开源项目,它允许用户通过Web浏览器访问和控制SSH会话。这个创新的工具为远程服务器的管理提供了一种直观且便捷的方式,尤其适合那些需要在多种设备或环境中访问命令行接口...

    Go-使用Go和WebSockets的LiveDesktopCapturePoC

    在“Go-使用Go和WebSockets的LiveDesktopCapturePoC”项目中,我们将探讨如何利用Go语言结合WebSocket技术实现桌面实时捕获的证明概念(Proof of Concept,PoC)。WebSocket是一种在客户端和服务器之间建立长连接的...

    使用JavaScript和WebSockets的交互式悬浮板原型

    本文将深入探讨如何使用JavaScript和WebSockets技术构建一个交互式的悬浮板原型。JavaScript是Web开发中的主要脚本语言,而WebSockets则提供了一种双向通信的协议,使得服务器与客户端可以实时交换数据。 首先,...

    人脸检测-基于OpenCV+Node.js+WebSockets实现的实时人脸检测应用-附项目源码-优质项目实战.zip

    本项目是一个实时人脸检测应用程序,它综合运用了OpenCV、Node.js和WebSockets技术,为用户提供了一种高效且互动的面部识别体验。这个压缩包包含的资源将帮助你理解和构建一个类似的系统,以下是相关知识点的详细...

    gwt-websockets-1.0.3.zip

    GWT-WebSockets作为一个包装器,为GWT应用提供了一种方便的方式来利用WebSockets技术,而无需直接处理底层的WebSocket API,这通常会涉及到复杂的JavaScript和网络编程。 在标签 "开源项目" 中,我们可以推断出这个...

    使用websockets和HighCharts的温度和湿度图表-项目开发

    9. **PDF文档** (temp-humidity-chart-using-websockets-and-highcharts-362861.pdf): 这份文档可能是项目教程或详细步骤的说明,包含如何设置Arduino、连接传感器、编写WebSocket通信代码,以及在网页上配置...

    java-websockets_demo

    Java WebSockets 与 Spring 框架的整合是一个常见的技术实践,用于构建实时、双向通信的Web应用程序。本项目"java-websockets_demo"提供了一个完整的示例,可以帮助开发者了解如何在Java环境中利用WebSocket和Spring...

    IM即时通讯技术在不同场景下的技术实现与性能调优

    例如,HTML5的Websockets技术,它与传统的HTTP请求方式相比,能显著降低流量消耗。 #### 技术实现细节 IM技术在iOS平台上的实现涉及到众多技术细节,包括但不限于: - **协议选择**:应用中实现IM即时通讯需要...

    Go-Packagesockets一个中间件为Macaron提供WebSockets通道绑定

    - `example.go`:一个简单的示例,展示了如何在Macaron应用中集成并使用sockets中间件。 - `README.md`:说明文件,详细解释了如何安装、配置以及使用这个中间件。 - `sockets.go`:实际的中间件实现,包含了中间件...

    spring-websockets-master.zip

    在这个"spring-websockets-master.zip"项目中,我们将深入探讨如何利用Spring框架和WebSocket技术来创建一个聊天应用。 首先,让我们了解一下WebSocket。WebSocket是HTML5引入的一种在单个TCP连接上进行全双工通信...

    Node.js-通过WebSockets的TCP隧道

    标题 "Node.js-通过WebSockets的TCP隧道" 指涉的是在Node.js环境中利用WebSockets技术创建一个TCP隧道。这是一种高级网络通信技术,它允许双向、实时的通信,通常用于游戏、实时聊天应用或者任何需要低延迟、高效率...

    一个Javascript SDK,用于从OpenSea Stream API接收更新 - 通过websockets推送

    在这个场景中,我们讨论的是一个专为OpenSea Stream API设计的JavaScript库,它允许开发者实时接收与NFT(非同质化代币)相关的更新。OpenSea是目前最大的NFT市场之一,它提供了各种NFT交易和管理服务。 **...

    jsGame:使用 websockets 的 HTML5 多人游戏

    总结来说,"jsGame"是一个使用JavaScript和WebSockets技术构建的实时多人HTML5游戏,它展示了如何通过WebSocket实现玩家间的实时互动,以及如何利用pathfinding.js库解决游戏中的路径寻找问题。这款游戏不仅提供了...

Global site tag (gtag.js) - Google Analytics