我有一个使用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上的问题
您可以保留一个简单的回调映射,并在消息传入时进行查找。
类似:
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
});
And on message:
pubnub.subscribe({
channel: chnl,
message: function(m){
var msg = $.parseJSON(m);
processMessage(msg);
}
);