javascript - JS 的基于主题的发布/订阅

标签 javascript wildcard publish-subscribe

我希望能够拥有类似于 jQuery 的自定义事件和 PubSubJS (http://github.com/mroderick/PubSubJS) 中的 pubsub 机制。

问题是这些 pubsub 库中的每一个都在主题上完全匹配。 IO 希望能够发布如下主题:

"Order/Sent/1234"

并收听订阅:

"Order/Sent/1234"
"Order/Sent/*"
"Order/*/1234"

有谁知道 JS 有类似的东西吗?

最佳答案

修改自己喜欢的就行了。在 github 上 fork 它,打开 pubsub.js 并执行如下操作:

var deliverMessage = function(){
    var subscribers = [];

    for(var n in messages){
        if( new RegExp('^' + n + '$').test( message ) ){
            subscribers = subscribers.concat( messages[n] );
        }
        ...
    }
}

你可能需要稍微修改一下,做一些类似将所有 * 替换为 .*[^\/]* 在转换为正则表达式等之前...

关于javascript - JS 的基于主题的发布/订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180647/

相关文章:

javascript - 导航栏同时淡出和显示

javascript - React Google map API initMap 不是函数,没有包

Java泛型通配符问题: List<?扩展了A>

java - 玩!根地址的框架路由通配符

javascript - Javascript 中的随机值

javascript - 如何使用基本运算符检查字符串的数学表达式?

Java 通配符不允许类型转换

node.js - 让 Node.js WAMP.IO 服务器订阅客户端发布以测量延迟

java - 为 JMS 发布者/消费者设置 clientID 的目的是什么?

ruby-on-rails - ruby 和 Redis : set a timeout for subscribtions