2015-10-14 88 views
1

我想添加阻止,解除阻止和檢索阻止用戶在我的聊天Web應用程序中列出的功能。Quickblox:在WEB聊天中阻止解除阻止和阻止列表

對於這一點,我修改quickblox.js通過添加新功能,將會在下面_enableCarbons()功能塊列表如下:

getBlockList: function() { 
     iq = $iq({ 
     //from: connection.jid, //Also tried to sent this but same response was received 
     type: 'get', 
     id: connection.getUniqueId('sendIQ') 
    }).c('blocklist', { 
     xmlns: "urn:xmpp:blocking" 
    }); 

    connection.sendIQ(iq, function(stanza) { 
     console.log("response of getBlockList",stanza); 
     callback(); 
    }); 
} 

在調用上面下面的XML功能被髮送到服務器:

<iq type="get" id="3:sendIQ" xmlns="jabber:client"> 
    <blocklist xmlns="urn:xmpp:blocking"></blocklist> 
</iq> 

這作爲迴應請發送以下xml:

<iq id="3:sendIQ" to="[email protected]/1220770403-quickblox-228541" type="error" xmlns="jabber:client"> 
    <blocklist xmlns="urn:xmpp:blocking"></blocklist> 
    <error type="cancel" code="501"> 
     <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></feature-not-implemented> 
     <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">Feature not supported yet.</text> 
    </error> 
</iq> 

請讓我知道如果我需要發送其他事情或一些錯誤我在做。 我跟着http://xmpp.org/extensions/xep-0191.html鏈接檢索塊列表

我也跟着XEP-0016,並通過代碼將用戶添加到隱私列表的改變:

block : function(userId,callback) { 
iq = $iq({ 
    from: connection.jid, 
    type: 'set', 
    id: connection.getUniqueId('sendIQ') 
}).c('query', { 
    xmlns: "jabber:iq:privacy" 
}).c('list',{ 
    name : 'public' 
}).c('item',{ 
    type : 'jid', 
    value : this.helpers.getUserJid(userId, this.service.getSession().application_id), 
    action : 'deny', 
    order : new Date().getTime() 
}); 

connection.sendIQ(iq, function(stanza) { 
    console.log("response of getBlockList",stanza); 
    callback(stanza); 
}); 
} 

此發送以下XML:

<iq from="[email protected]/1220770403-quickblox-233195" type="set" id="3:sendIQ" xmlns="jabber:client"> 
<query xmlns="jabber:iq:privacy"> 
    <list name="public"> 
     <item type="jid" value="[email protected]" action="deny" order="1444815897276"></item> 
    </list> 
</query> 
</iq> 

迴應,我從服務器得到的是:

<iq id="3:sendIQ" to="[email protected]/1220770403-quickblox-233195" type="error" xmlns="jabber:client"> 
<query xmlns="jabber:iq:privacy"> 
    <list name="public"> 
     <item value="[email protected]" action="deny" order="1444815897276" type="jid"></item> 
    </list> 
</query> 
<error type="modify" code="400"> 
    <bad-request xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></bad-request> 
</error> 

輸入代碼在這裏

回答

1

QuickBlox使用XEP-0016隱私權列出了攔截功能

http://xmpp.org/extensions/xep-0016.html

請遵守它,而不是0191

+0

我也嘗試過,但在錯誤請求的響應中出錯。我剛剛更新了我的帖子,請檢查並讓我知道那裏有什麼問題。 –

+0

必須包含'訂單'屬性,其值必須是列表中所有項目中唯一的非負整數。 (如果客戶端嘗試創建或更新具有非唯一訂單值的列表,則服務器必須向客戶端返回節錯誤。) –

+0

如何在發送請求時識別訂單號是唯一的在列表中添加項目。 –