Как установить издателя на узле PubSub с помощью Smack?

Я разрабатываю чат с библиотеками Smack и сервером Openfire. Я хотел бы сделать пользователя издателем на моем узле pubsub. Я искал в Интернете, но я ничего не могу найти.

Я установил pubsub с этой конфигурацией:

nodeconfig.setPublishModel(PublishModel.publishers);

Я видел, что могу создать принадлежность:

Affiliation af = new Affiliation(mypubsub,Affiliation.Type.publisher);

Что я могу сделать?


person Stizzo    schedule 14.07.2015    source источник


Ответы (1)


Вам нужно получить ConfigurationForm узла через Node.getNodeConfiguration(), создать из него форму ответа с помощью createAnswerForm и вызвать Form.setAnswer(String, String), чтобы установить параметр pubsub#publisher. Затем отправьте форму ответа с помощью Node.sendConfigurationForm(Form).

from.setAnswer("pubsub#publisher", "[email protected]");

См. также XEP-60 8.2.

person Flow    schedule 14.07.2015
comment
Что делать, если я хочу удалить издателя? - person Stizzo; 16.07.2015
comment
Поле pubsub#publisher формы конфигурации имеет тип jid-multi и содержит не дельту, а список издателей, который нужно установить на узле. Поэтому, если вы хотите удалить издателя, вы отправляете поле со списком издателей за вычетом издателя, которого хотите удалить. - person Flow; 16.07.2015