2014-02-27 1 views
2

내 XMPP 클라이언트에서 통신을 차단하려고합니다 (strophe.js 위에 구축 됨). 문제는 내가 "음소거"하려고하는 연락처에 대한 내 메시지 만 차단하지만 해당 연락처의 수신 메시지는 모두 차단하지 않는다는 것입니다. 여기 XMPP 차단 메시지

은 ( http://xmpp.org/rfcs/rfc3921.html#privacy 기준) 논리입니다 : 활성이 목록을 확인 내 "블록"목록

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)에

1) 추가 "[email protected]을"

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를을 확인 메시지가 들어올 때마다이 목록과 비교합니다.