我正在使用Stomp / Orbited来实现Comet功能。
为了处理多个通道,我最终这样做:
stomp.onmessageframe = function(frame) {if (Frame.headers‘’destination‘== '/ thisFeed /') {//处理thisFeed}
if (Frame.headers‘’destination‘== '/ thatFeed /') {//处理thatFeed}
我想,....which还不错。但是,如果我在加载时不知道如何处理提要呢?我希望能够做这样的事情:
Stomp.subscribe(‘某些其他馈送’,someOtherFeedHandler);
这样,当我订阅时,我才能定义处理程序。
发布于 2011-01-05 03:58:52
我已经想出了一个解决方案,但它离漂亮还很远。
当我创建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
}然后,调用函数...so ()。然后我可以在我想要的任何地方定义(和重新定义)大羊驼。
现在我确信这不可能是最优的解决方案。另一方面,我确实喜欢它给了我一点灵活性,让我可以在python中指定我想要使用的处理程序。但说真的,我在想有一个更好的方法。
https://stackoverflow.com/questions/4588928
复制相似问题