我有一个使用pubnub进行消息传递的javascript客户端。我正在订阅这样的频道:
pubnub.subscribe({
channel : chnl,
message : function(m){
var msg = $.parseJSON(m);
processMessage(msg);
}
);
我有一堆小部件/组件,目前只包含动态加载的HTML。现在,processMessage()
基本上只是说“如果消息ID是widget1那么就做一堆东西”。我想修改组件文件以包含处理所有窗口小部件数据的javascript,以及一些如何注册钩子来检测PubNub消息何时带有与窗口小部件匹配的ID。
我该怎么做?
有关详情,请参阅programmers.stackexchange.com上的this question。
答案 0 :(得分:1)
您可以保留一个简单的回调映射,并在收到消息时进行查找。
类似的东西:
var callbackMap = {};
function registerCallback(id, callback) {
callbackMap[id] = callback;
}
function processMessage(msg) {
callbackMap[msg.id](msg.data);
}
在每个组件中,您将注册:
registerCallback('widget1', function(data) {
//do something for widget1 with data
});
关于消息:
pubnub.subscribe({
channel: chnl,
message: function(m){
var msg = $.parseJSON(m);
processMessage(msg);
}
);