2012-07-26 26 views
0

如何使用Backbone.xmpp提取订阅?我知道我通过XMPPConnection.PubSub.getSubscriptions();获得了他们,但是如何使用Collections,Models和View来订阅?我是否必须使用Backbone.Collection和Backbone.Model,因为Backbone.xmppSync的集合和模型仅适用于叶节点。Backbone.xmpp:提取订阅

回答

1

documentation中所述,订阅不由节点直接管理。 Backbone.xmpp提供的节点模型仅与XMPP节点同步并提供实时通知。

通过利用Strophe的捆绑pubsub插件,您必须通过服务器端(最好使用您喜欢的任何安全工作流程)或客户端来执行此操作。 再一次,它很直接,看看inline documentation。用户可以通过使用subscribe,unsubscribe,getSubscriptions来管理他的订阅或获取他们的全部订阅。

因此,举例来说,

var p = connection.PubSub.subscribe('/nodes/my_node') 
    .done(function() { console.log('You are subscribed'); }) 
    .fail(function() { console.log('Ohoh, something went wrong'); }); 

将连接用户订阅节点/nodes/my_node

+0

我试图做到这一点在客户端。我可以使用Backbone.Collection和Backbone.Model将结果放入Collection中吗?但如果是这样,它会尝试通过http进行同步。如何克服这个问题?或者只是使用视图来显示它?代码中的一个简短例子会很棒!我试图在昨天整天没有成功。所以一个简短的代码示例将非常感激。 – genericatz 2012-07-27 08:22:48

+0

我更新了一个例子。不,你不应该使用“正常”模型/集合,使用Backbone.xmpp中提供的模型/集合。如果用户订阅,他们只会自动同步。 – ggozad 2012-07-27 08:30:03

+0

我的问题是获取订阅并显示它,每当用户想取消订阅,然后取消订阅。所以我得到了订阅p = XMPPConnection.PubSub.getSubscriptions(); p.done(function(subscriptions){return subscriptions;}); p.fail(...);是对的吗?我需要JSON.parse吗?然后,只需放入视图并显示它? – genericatz 2012-07-27 08:41:16