Faye,Simple pub/sub messaging for the web

参考资料

http://faye.jcoglan.com/

  

  

Faye is a publish-subscribe messaging system based on the Bayeux protocol/CometD. It provides message servers for Node.js and Ruby, and clients for use on the server and in all major web browsers.

  

  

系统架构

  

  

组件

功能

Storage

存储内容

  • 活跃client的id
  • 订阅信息
  • queued message to be delivered to clients

存储方式

  • memory engine
  • redis engine

Engine

Storage的抽象层,实现了Faye的所有服务

  • client registering
  • storing subscriptions
  • routing messages

Server

实现了Bayeus 协议,操作集

  • handshake
  • connect
  • disconnect
  • subscribe
  • unsubscribe
  • publish

Server无HTTP或其他任何网络传输技术有关

Server-side extendsions

扩展层,可以拦截incoming/outgoing message

Adapter

通过HTTP提供Server的服务,负责以JSON方式序列化和反序列化message;

连接处理

  • 基于WebSocket的持久连接
  • 基于HTTP POST的long polling
  • CORS(Cross Origin Resource sharing)
  • JSONP

两个实现:NodeAdapter, RackAdapter

Transport

客户端的network transport,负责通信和JSON的序列化和反序列化以及网络故障的检测和恢复

  • Websocket实时性强
  • long polling / JSONP只能依赖超时

client-side extensions

类似于Server-side extendsions

client

提供subscribe/unsubscribe, send/receive message的接口,实现了Bayeux protocol,用户不需要处理handshake 和 connect等底层操作

  

  

Cluster支持

这种结构中的Storage采用Redis。Server是无状态,方便水平扩展,简化路由(使用随机/rr策略即可)。

  

  

使用简单

  

使用类似socket.io

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值