我有一个本机聊天应用程序,我在Android手机上使用USB调试运行,我使用OPENFIRE作为聊天服务器。为了与Openfire连接,我正在使用库' react-native-xmpp '。下面是使用react-native-xmpp -
与OPENFIRE连接的代码import XMPP from 'react-native-xmpp';
var JID = 'admin@192.168.4.246';
XMPP.on('error', (message) => console.log('ERROR:' + message));
XMPP.on('loginError', (message) => console.log('LOGIN ERROR:' + message));
XMPP.on('login', (message) => console.log('LOGGED!'));
XMPP.on('connect', (message) => console.log('CONNECTED!'));
XMPP.connect('ramvallabh@192.168.4.246', 'root','RNXMPP.PLAIN','192.168.4.246',5222);
XMPP.message('Hello world!' , JID);
XMPP.disconnect();
我在这里使用的IP是我的本地IP地址。 我正在尝试连接到端口5222作为PLAIN连接。但我收到一个错误说
客户端要求的SSL / TLS,但不支持或不再支持 服务器
我检查了端口5222处的OPENFIRE配置。我禁用了加密并启用了加密,但两种情况都没有任何区别。我还试图连接到端口5223然后错误说
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException:信任锚 未找到证书路径。
我没有上传太多代码,因为我认为错误要么在于图书馆,要么是我不理解的网络概念。 有没有人知道这里可能出现的问题或其他更好的方法呢?
答案 0 :(得分:0)
您面临此错误,因为在raect-native-xmpp的Java代码中,默认情况下启用了安全模式。如果要使用PLAIN文本身份验证,则必须将其关闭。
示例:假设您本机反应的应用名称为 TestApp ,然后转到以下目录: TestApp / node_modules / react-native-xmpp / android / src / main / java / rnxmpp / service 并转到第76行,并替换为以下行:
之前:
.setSecurityMode(ConnectionConfiguration.SecurityMode.required);
之后:
.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);