openfire4.2.3使用总结

本文介绍OpenFire服务器与Smack客户端配置过程中的常见问题及其解决方案,包括使用127.0.0.1导致的连接失败、不同版本间的兼容性问题以及消息发送的正确方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常:
openfire服务端配置域名为127.0.0.1 服务名 127.0.0.1 即openfire安装在本机电脑,客户端访问本地服务器。
电脑上的spark配置域名为127.0.0.1,可以正常登录
用自己写的app客户端连接时配置的服务器IP也为127.0.0.1,登录后出现如下异常

org.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: ‘127.0.0.1:5222’ failed because: /127.0.0.1 exception: java.net.ConnectException: Connection refused
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:619)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:902)
at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:380)
03-25 06:03:40.376 10956-11115/com.wqx.dowa W/System.err: at com.wqx.dowa.smack.SmackImpl.login(SmackImpl.java:287)

解决:cmd命令,ipconfig,查看本机ip,app客户端连接的ip换为本机ip,不再使用127.0.0.1。openfire配置不变,正常登录
不建议这么做,最好openfie服务端配置的域名,服务器地址和客户端保持一致。

发送消息:
app使用smark4.2的时候,远程服务端(阿里云主机)openfire使用4.1.5,群聊(新加的功能)怎么都收不到消息,也发不出去,一直找不到问题所在。
最后先在本地试试的心态(怀疑是服务器openfire版本的问题,毕竟4.2版本改动了很多),在本地安装openfire4.2.3,登录成功后,群聊收发消息正常。确定是服务端openfire版本低的问题。
注意:4.2后发消息时:
单聊/群聊 这样写
Message newMessage;
newMessage = new Message(JidCreate.from(toJID));
newMessage.setBody(messageBody);
mXMPPConnection.sendStanza(newMessage);
单聊时,对方可以收到消息,提示是广播的消息。
群聊时,群成员收不到消息

正确写法:
单聊:
Message newMessage;
newMessage = new Message(JidCreate.from(toJID),Message.Type.chat);
newMessage.setBody(messageBody);
mXMPPConnection.sendStanza(newMessage);

群聊:
Message newMessage;
newMessage = new Message(JidCreate.from(toJID),Message.Type.groupchat);
newMessage.setBody(messageBody);
mXMPPConnection.sendStanza(newMessage);

阿里云上安装openfire:
xftp工具下载 https://download.youkuaiyun.com/download/qq_35841826/10131415
xshell 工具
openfire4.2.3
rpm 在ubuntu下安装 方法 https://blog.youkuaiyun.com/suleil1/article/details/49471723
方法:
1.CODE:
sudo apt-get install rpm alien
2.CODE:
alien -d package.rpm
3.CODE:
sudo dpkg -i package.deb

XMPPError: bad-request - modify error create new user using smack and openfire

解决方法:

设置适当的服务名称 不要使用原始的(127.0.0.1)  

登录openfire管理界面后会显示服务器名称  把那个名称设置上去就行了  下面是我的代码

 XMPPTCPConnectionConfiguration xmpp = XMPPTCPConnectionConfiguration.builder()
                    //服务器IP地址
                    .setHost("192.168.1.155")
                    //服务器端口
                    .setPort(5222)
                    //服务器名称(管理界面的 主机名)
//                    .setServiceName("127.0.0.1") 不设置默认的地址
                    .setServiceName("user-20150810nb")
                    //是否开启安全模式
                    .setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled)
                    //是否开启压缩
                    .setCompressionEnabled(false)
                    .setSendPresence(false)
                    //开启调试模式
                    .setDebuggerEnabled(true)
                    .setUsernameAndPassword("admin", "admin")
                    .build();

https://blog.youkuaiyun.com/u011481547/article/details/72842738

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值