我正在使用Stomp / Orbited进行Comet功能。
为了处理多个渠道,我最终会这样做:
stomp.onmessageframe = function(frame) {
if(frame.headers ['destination'] =='/ thisFeed /'){ //处理thisFeed }
if(frame.headers ['destination'] =='/ thatFeed /'){ //处理thatFeed }
....我猜,这没关系。但是,如果我不知道,在加载时,我想如何处理Feed?我希望能够做到这样的事情:
stomp.subscribe('someOtherFeed',someOtherFeedHandler);
这样,当我订阅时,我可以然后定义处理程序,然后才能。
答案 0 :(得分:0)
我已经提出了一个解决方案,但距离漂亮的距离还很远。
当我创建stomp消息时,我添加了一个“handler”属性作为标题,就像在python中一样:
conn.send('Frank the Wonder Llama", destination="/infoAboutLlamas/", handler='llamas')
然后,在javascript:
stomp.onmessageframe = function(frame) {
window[frame.headers['handler']]() //Execute the function named by the handler
}
...那么,函数llamas()被调用。然后我可以在任何我想要的地方定义(并重新定义)美洲驼。
现在我确信这不是最佳解决方案。另一方面,我这样做,它给了我一些灵活性来指定我想在python中使用的处理程序。但说真的,我认为有更好的方法。