2014-02-27 44 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的每次收到消息时都要对这个列表进行排序。