2012-07-26 73 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