业务场景,在使用comet4j从服务器向客户端推送消息时,要在客户端页面对channel进行监听,因为项目需要需要动态监听channel,而在comet4j的demo里,对channel进行监听的代码如下:
var kbDom = document.getElementById('kb');
JS.Engine.on({
hello : function(kb){//侦听一个channel
kbDom.innerHTML = kb;
}
});
JS.Engine.start('conn');
JS.Engine.on(
'start',function(cId,channelList,engine){
alert('连接已建立,连接ID为:' + cId);
});
本人想对hello位置进行动态处理,该怎么办呢。本人debug了下js代码,发现JS.Engine的结构如下:
从图中可以看到,hello和对应的fn被加到了JS.Engine.lStore里了,
而lStore从图中可以看到是一个Array,所以,本人用js代码对其进行了处理,动态添加了channel绑定事件,代码如下:
var event = {};
event.fn = function(data){//侦听一个channel
addPointOnMap(data);
};
event.eventName = chanelName;
JS.Engine.lStore.push(event);
JS.Engine.start('conn');