Java Smack lib有方法:
public void kickParticipant(String nickname, String reason)
但是有nickname
作为参数。我有用户JID ...所以,我试图为用户获取昵称:
mChats.get(room).getMembers().forEach(user -> LOG.debug(user.getNick() + ", " + user.getJid()));
我明白了:
null, 4_1@localhost
null, 113_1@localhost
我尝试通过用户登录(例如'113_1')并收到错误:
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: not-acceptable - modify
正如spec中所述,它意味着<bad-request/>
。
我尝试以不同格式传递nickname
:nickname
,roomname@domen/nickname
,nickname@host
。并得到同样的错误。
但是对于C#我使用Matrix库。还有方法:
KickUser(Jid room, string nickname);
当我尝试将此用户登录(例如113_1
)作为参数传递时,它工作正常。
将用户登录作为参数传递给kick方法时,我是否正确?如果是,我该如何避免此错误?