2014-02-27 40 views
2

我想阻止我的XMPP客戶端(建立在strophe.js之上)的通信。問題是它只阻止我的消息給我試圖「靜音」的聯繫人,但不阻止來自該聯繫人的任何傳入消息。XMPP塊消息

這裏是邏輯(基於http://xmpp.org/rfcs/rfc3921.html#privacy):

1)添加 「[email protected]」 我的 「塊」 列表

var recipient = "[email protected]" 
var block = $iq({type: 'set'}).c('query', {xmlns: 'jabber:iq:privacy'}). 
c('list', {name: 'block'}). 
c('item', {type: 'jid', value: recipient, action: 'deny', order: 1}). 
c('message'); 

2)使此列表中的活動

var setListActive = $iq({type: 'set'}).c('query', {xmlns: 'jabber:iq:privacy'}).c("active", {name: "block"});   
SGN.connection.sendIQ(setListActive); 

可能是什麼問題?

回答

0

我可能是錯的但我明白的是它應該如何工作。

如果你檢查你添加的JID你會看到,他們都在那裏名單:

var getMyPrivacyList = $iq({type: 'get'}).c('query', {xmlns: 'jabber:iq:privacy'}).c("list", {name: "block"});   
APP.connection.sendIQ(getMyPrivacyList,function success(response) { console.log(response) }); 

但是,如果你想阻止傳入郵件,你不得不手動檢查發送者的JID的每次收到消息時都要對這個列表進行排序。