xmpp - 加入会议无响应 SmackException NoResponseException
问题描述
我在加入会议聊天时遇到了异常。
例外:
org.jivesoftware.smack.SmackException$NoResponseException:在回复超时内未收到回复。超时为 10000 毫秒(约 10 秒)。等待响应使用:AndFilter: (StanzaTypeFilter: Presence, OrFilter: (AndFilter: (FromMatchesFilter (ignoreResourcepart): hdhd@conference.35.171.18.126, MUCUserStatusCodeFilter: status=110), AndFilter: (FromMatchesFilter (full): hdhd@conference. 35.171.18.126/user00000003,StanzaIdFilter:id=c3v5j-70,PresenceTypeFilter:type=error)))。07-02 12:39:58.019 31567-31567/com.br.granplay W/System.err: 在 org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:260)
代码:
muc = MucManager.getInstance()
.getMultiUserChat(MucManager.getEntityBareJid(jid));
String strresource = XmppConnection.getXMPPConnction()
.getUser().getLocalpart().toString();
Resourcepart resourcepart = Resourcepart.from(strresource);
MucEnterConfiguration.Builder mec = muc.getEnterConfigurationBuilder(
resourcepart);
mec.requestNoHistory();
MucEnterConfiguration mucEnterConfig = mec.build();
muc.join(mucEnterConfig);
解决方案
org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout
通常,当用户的状态未更新到 Openfire 服务器并尝试加入房间时,会出现此异常。
因此,在关闭应用程序的 onStop() 上更新您的状态(不可用)。并设置你的存在(可用)onResume()。
尽管如此,您仍然会收到此异常,然后在异常时将用户的存在“不可用”发送到 Openfire 服务器,并在 1-2 秒后发送存在“可用”,然后加入组。
推荐阅读
- javascript - 在反应js中设置对象数组的状态
- apache-spark - 如何设置增量表日志保留
- javafx - 将克隆对象添加到窗格时,线程“JavaFX 应用程序线程”java.lang.IndexOutOfBoundsException 中的异常
- arrays - 重新填充该范围时,我需要保留 Excel 范围中某些行的内容
- linux - 我怎么知道一个页面是从结构页面固定的?
- c - esp32 modbus rtu slave没有响应
- vba - 在 VBA 中为文件生成序列号
- r - 如何让 R 读取 CSV 的实际值而不是指数格式
- c# - 从证书中读取私钥时出错
- z3 - 真实理论中 z3 中的“根对象”是什么?