天天看點

openfire4.2.3使用總結

異常:

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.csdn.net/download/qq_35841826/10131415

xshell 工具

openfire4.2.3

rpm 在ubuntu下安裝 方法 https://blog.csdn.net/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

解決方法:

設定适當的服務名稱 不要使用原始的()  

登入openfire管理界面後會顯示伺服器名稱  把那個名稱設定上去就行了  下面是我的代碼

 XMPPTCPConnectionConfiguration xmpp = XMPPTCPConnectionConfiguration.builder()
                    //伺服器IP位址
                    .setHost("192.168.1.155")
                    //伺服器端口
                    .setPort()
                    //伺服器名稱(管理界面的 主機名)
//                    .setServiceName("127.0.0.1") 不設定預設的位址
                    .setServiceName("user-20150810nb")
                    //是否開啟安全模式
                    .setSecurityMode(XMPPTCPConnectionConfiguration.SecurityMode.disabled)
                    //是否開啟壓縮
                    .setCompressionEnabled(false)
                    .setSendPresence(false)
                    //開啟調試模式
                    .setDebuggerEnabled(true)
                    .setUsernameAndPassword("admin", "admin")
                    .build();
           

https://blog.csdn.net/u011481547/article/details/72842738

繼續閱讀