`

发布/订阅(Pub/Sub)模式的简单实现

阅读更多
var PubSub = {
        subscribe: function (ev, cb) {
            var calls = this._cbs || (this._cbs = {});
            (this._cbs[ev] || (this._cbs[ev] = [])).push(cb);
            return this;
        },
        publish: function () {
            var args = [].slice.call(arguments, 0);
            var ev = args.shift();

            var list, calls, i, l;
            if (!(calls = this._cbs)) return this;
            if (!(list = this._cbs[ev])) return this;

            for (i = 0, l = list.length; i < l; i++) {
                list[i].apply(this, args);
            }
            return this;
        }
    };

    PubSub.subscribe('hello', function (data) {
        console.log(data);
    });
    
    PubSub.publish('hello', '你好啊,我是参数。');

 

基于jquery的发布/订阅(Pub/Sub)实现:

(function () {
        var o = $({});
        
        $.subscribe = function() {
            o.bind.apply(o, arguments);
        };
        
        $.unsubscribe = function() {
            o.unbind.apply(o, arguments);
        };
        
        $.publish = function() {
            o.trigger.apply(o, arguments);
        };
    })(jQuery);

 

分享到:
评论

相关推荐

    zeromq的pub-sub订阅模式的jave实现

    zeromq的pub-sub订阅模式的jave实现,Eclipse下的maven工程,相关引用已在pom文件引入,可以直接运行。

    qt zmq 的使用:订阅模式:PUB(服务器)/SUB(客户端)

    订阅模式:PUB(服务器)/SUB(客户端) 一个简单的代码示例包含以下内容: 1. 智能指针的使用 2. 线程的使用 3. zmq的使用 这种服务即服务器会不停发送数据,然后客户端对其进行订阅,客户端会收到服务器发送的数据...

    一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之

    一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制...

    用现代C ++编写的高性能pub / sub WebSocket服务器。-C/C++开发

    它着重于高性能和可用性,并实现了发布-订阅模式和主题概念。 Concepts Eventhub是用现代C ++编写的WebSocket消息代理。 它着重于高性能和可用性,并实现了发布-订阅模式和主题概念。 概念主题主题是将消息发布到的...

    RocketMQ_原理解析

    支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 支持拉(pull)和推(push)两种消息模式 单一队列百万消息的堆积能力 支持多种消息协议,如 JMS、MQTT 等 ...

    rocketmq-4.5.1.zip

    支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 支持拉(pull)和推(push)两种消息模式 单一队列百万消息的堆积能力 支持多种消息协议,如 JMS、MQTT ...

    Shuttle Pub Sub

    Shuttle ESB中发布订阅模式的实例介绍。功能如下: 从消息发布端Pub发布一个消息事件OrderCompletedEvent,多个客户端(如SubA和SubB)订阅该事件OrderCompletedEvent。那么当Pub发布消息后,SubA和SubB就能够收到...

    Message-Driven Bean 培训PPT

    通过JMS 介绍讲解MDB的使用,分别讲解的P2P和发布/订阅等模式的消息通信,并附有参考价值的代码。 1、JMS(Java Message Service) 2、PTP (点对点) 3、Pub/sub (发布/订阅) 4、MDB 的生命周期

    pub_sub.rar

    基于zmqpp实现的zeromq的publish-subscribe模式,实现了一发多收的功能,同时sub端可以订阅自己指定的topic(序中支持了三种topic的订阅)

    自动驾驶中间件水杉SDK

    全量SDK支持:同机微秒级的进程间通信且与通信消息数据大小无关,支持发布/订阅(pub/sub)通信模式,分布式通信无中心节点,分布式通信总线,自动服务发现,自动匹配链接,自动按需转发,执行权内存空间完全可配置...

    深入了解C#设计模式之订阅发布模式

    什么是Pub-Sub 发布订阅是一种设计模式,...首先我们看一个简单地订阅发布模式. 定义一个Action委托,无返回值. namespace PubSubPattern { public class Pub { public Action OnChange { get; set; } public voi

    Android代码-用 RxJava 实现 EventBus 。

    基于发布订阅(Pub/Sub)模式的一个事件消息库,使用通用的 register(target), unregister(target), post(event) 消息通信接口,能有效的减少甚至消除Android应用中异步任务逻辑和界面更新之间的耦合,实现模块化,...

    ROS压缩图像订阅、还原例程

    --功能选择,,value=0 发布compress还原后的图像,value=1制作数据集模式--&gt; &lt;param name="select_func" type="int" value="1" /&gt; &lt;!--选择存储的路径--&gt; &lt;param name="save_folder" type="string" value="/home/...

    zmqpubsub:在zeromq之上实现友好的pubsub实现

    它抽象了底层的ZeroMQ机械,以为发布-订阅消息传递模式提供Go友好的API。 安装 go get -tags zmq_3_x github.com/hpcloud/zmqpubsub 用法 经纪人 首先设置一个经纪人: var Broker zmqpubsub. Broker func init ()...

    message-db:Postgres的微服务本机消息和事件存储

    诸如或之类工具的基本功能的简约实现,并内置支持诸如Pub / Sub之类的消息传递模式以及诸如消费者组之类的消费者模式。 消息数据库是从提取的,以使用户可以更轻松地以他们选择的语言编写客户端。 用户指南 完整的...

    Redis 发布订阅

    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 ...

    pub-sub-pattern-concept-experiment:系统设计上下文中的Pub-Sub模式

    运行充当发布者,订阅者和主题的中心的服务器。 npm run start:server 订户的第二至第五终端 运行subscriber1 ,侦听有关topic_foo消息 npm run start:subscriber1 运行subscriber2 ,侦听有关topic_foo消息 npm ...

    eth-pub-sub:以IPFS进行发布-订阅管理的以太坊合同

    eth-pub-sub 实验性实体合同,旨在管理IPFS PubSub主题的地址订阅。 它们旨在与不需要管理订阅的应用程序结合使用,只需让合同来完成工作即可。 其背后的想法是让类似聊天的应用程序使用合同来确定可以订阅哪些...

    Spring 实现远程访问详解——jms和activemq

    发布/订阅(publish/subscribe,简称 pub/sub)。 这两种消息传递模型非常相似,但有以下区别: PTP 消息传递模型规定了一条消息只能传递给一个接收方。 采用javax.jms.Queue 表示。Spring配置类型destination-type=...

Global site tag (gtag.js) - Google Analytics