专栏首页性能与架构realtime 库和框架概览

realtime 库和框架概览

Websocket 库

现在大部分新版浏览器、Android、IOS 都已经支持了 Websocket,直接使用 Websocket 问题不大,那么 Websocket 库的作用是什么呢?

Websocket库提供了不少辅助功能,使开发更简单,例如 心跳检测机制、重连、不支持Websocket情况下的后退方案

engine.io

跨浏览器、跨设备的双向通信层实现,小巧,非常稳定,具有高可用性,而且对负载均衡器友好,易扩展

https://github.com/socketio/engine.io

WS

一个 node.js websocket 库,据说是 node.js 中最快的

https://github.com/websockets/ws

SockJS

一个JS库,提供了清晰的跨浏览器JS API,可以在服务器与客户端间建立低延时、全双工、跨域的通讯

支持丰富的后退机制,例如 websocket 不可用时,会自动后退为 flash 或者 http轮询方式

https://github.com/sockjs/sockjs-client

Primus

不是一个具体实现,而是一个实时框架的外壳

node.js 中有很多实时框架,各有特色,Primus便提供了一个通用接口,方便更换不同框架

https://github.com/primus/primus

Tornado

Python 的实时库,提供了较好的后退机制

http://www.tornadoweb.org/

web-socket-js

基于 flash 的 websocket 实现

https://github.com/gimite/web-socket-js

libwebsocket

C语言的 websocket 实现,以最少的 CPU 和内存资源,实现尽可能快的全双工通讯

https://libwebsockets.org/

Atmosphere

是一个工作于 JVM 的异步 WebSocket/Comet 框架,支持 WebSockets, Server Sent Events (SSE), Long-Polling, HTTP Streaming (Forever frame), JSONP

并且支持非常多的扩展,例如 Redis, Hazelcast, JMS, JGroups

https://github.com/Atmosphere/atmosphere

Java Web Socket

纯 Java 实现的 WebSocket 客户端和服务器

http://java-websocket.org/

发布订阅库

在实时消息中,‘发布订阅’是一个被广泛采用的模式,多个客户端可以订阅一个主题,其他客户端可以向这个主题推送消息,是一个简单而且扩展性极好的多对多沟通模式

socket.io

可以工作于任何平台、浏览器、设备上,速度快、可靠性好

后端使用以了一个 Redis server,可以支持分布式多节点负载

http://socket.io/

socket cluster

Node.js 的实时 WebSocket 框架,具有高度可扩展性,在集群环境中可以很好的处理连接的负载均衡

http://socketcluster.io/

Data-Sync

发布订阅是实时应用最开始就使用的模式,工作过程类似这样:

用户A修改了某些数据,通过ajax提交sever保存到数据库,产生一个事件,其他客户端接收到此事件,发起一个ajax请求,获取新的数据

后来出现了一个更好的处理方式:data-sync

data-sync 可以使任何更改的数据马上同步到所有连接的客户端,减少请求,使应用更快,开发更简便

Horizon

RethinkDB 团队基于 RethinkDB server 开发的,包括 Node.js server 和 JavaScript 客户端,开发简单,运行极快

https://horizon.io/

FeatherJS

是一个 RESTful CRUD 框架,基于 Node 的 express.js,底层使用了 socket.io,当有对象变动后,就会发送事件,主打特点是简单、快速

http://feathersjs.com/

本文分享自微信公众号 - 性能与架构(yogoup)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Pixel 2 XL,软件为王

    在用了六年多 iPhone 后,程序君对 iOS 系统已经深深地审美疲劳,累觉不爱。 新出的 iPhone X 噱头不少,从功能上来看让人大失所望。正好,pix...

    tyrchen
  • 谈谈编程

    已经过去的那个五月,自己欠下了一屁股债。先是一位本已才气过人的读者(etter)发来截图提醒我曾经承诺的文章「谈谈大学」,后又有几位读者不约而同再度求稿「谈谈编...

    tyrchen
  • 项目推荐 | 逗视 IOS 客户端

    本项目是基于 IOS 的逗视客户端,逗视在发现页面有排行榜功能,看看哪些视频大家都在看! 逗视中的视频可以分享到QQ,微信,微博等社交平台,与你的朋友一起欢乐...

    码云Gitee
  • 终于,Geoffrey Hinton那篇备受关注的Capsule论文公开了

    Geoffrey Hinton 等人备受关注的 NIPS 2017 论文《Dynamic Routing Between Capsules》已于数小时前公开。 ...

    IT派
  • iOS 11.1.2越狱尝鲜

    最近盘古公开了一些漏洞细节,然后大家都在做各种越狱工具,在大佬解决Cydia前,我先分享下自己的吧。 常用的命令行工具基本都备齐...

    ChaMd5安全团队
  • 一文看尽苹果发布会:iPhone X背后黑科技全剖析

    李根 若朴 假装发自 Steve Jobs Theater 量子位 出品 | 公众号 QbitAI ? 刚刚,苹果秋季新品发布会胜利闭幕。 这次新登场的苹果产品...

    量子位
  • Runtime 中的消息机制

    说道Objective-C里面的消息机制,大部分人都知道是调用方法其实就是发送消息,一个叫objc_msgSend的东西负责的。今天结合《编写高质量iOS与OS...

    李海彬
  • IOS 8 Safari JIT bug影响jQuery和underscore

    前端时间为移动游戏做一个网页活动需求(9宫格的刮奖),遇到一个很诡异的问题:Android端OK,就是在Ios设备上,点击非第一块区域,显示却是第一块区域被刮开...

    晚晴幽草轩轩主
  • SAP发布新版iOS SDK:支持 Leonardo服务,图像识别等

    在MWC 2018展会上,SAP正在通过新控件和与Xcode开发环境更紧密集成来更新其用于iOS的SAP云平台SDK。 在MWC 2018展会上,SAP正在通过...

    BestSDK
  • Ionic vs React Native: 移动开发哪家强 ?

    选择合适的平台是开发人员在创建移动应用程序时面临的主要问题之一。据统计,iOS 和 Android 两大巨头已经有超过了十年的竞争。为了从软件开发的预算效益和时...

    IT派

扫码关注云+社区

领取腾讯云代金券