(写得有点粗糙,待补充)
官网:wamp.ws
specification地址:https://github.com/tavendo/WAMP/blob/master/spec (篇幅小,建议有兴趣的通读)
1. 基础档案
引入:
WAMP协议是一种建立在Websocket之上可以进行publish&subscribe和rpc的通信协议。它实现了类似ZeroMQ中的pub&sub通信模式,同时将这种模式用于传统的rpc通信,较好地解耦了通信端点之间的直接联系。
基础概念:
broker:pub&sub通信模式中的中间件。
dealer:rpc中caller&callee通信的中间件。
router:router其实就是broker和dealer的结合体。
realm:realm为router中的一个活动空间,client之间通信以realm为活动区间。
client:通信实体,消息发布者/订阅者,接口调用者/实现者。
peer:client或者router。
role:peer所扮演的角色。
topic:pub&sub主题,使用uri格式表达。
procedure:rpc的接口地址,同样使用uri格式来表达。
通信模型:
(specification的这幅图说明了一切)
总结:
WAMP引入的router可以使得后端接口无缝更新,另外realm使得后端接口只暴露功能子集给前端。pub&sub也可以很方便地进行消息多播。