Send XMPP (Smack) Message

梦想的初衷 提交于 2019-12-22 09:59:51

问题


Ok, the problem should be trivial but I can't get to the bottom of it.

I have two users A & B

Their JID's for this example will be A@123 and B@123 where 123 is the IP of the server.

I'm sending a message from A->B using the following code:

   chat = chatmanager.createChat(username,
   new MessageListener() {
      public void processMessage(Chat chat, Message message) {}});
   String sendUsername = username + "@123";
   Message msgObj = new Message(sendUsername, Message.Type.chat);
   msgObj.setBody(message);

   chat.sendMessage(msgObj);

I've hardcoded the IP so that I'm 100% sure that I attach the "@123" at the end of the nickname so there are no incorrect JIDs.

So A@123 sends msgObj to B@123. This is how I understood XMPP messaging to work. That you can't send from A->B but it must be A@123 -> B@123.

However, my server seems to think otherwise. It continuously informs me of the following error:

 2010.12.27 19:02:52 [org.jivesoftware.openfire.session.LocalOutgoingServerSession
 .createOutgoingSession(LocalOutgoingServerSession.java:258)] Error trying to 
 connect to remote server: A(DNS lookup: A:5269) 
 java.net.UnknownHostException: A 

In both A and B's roster on the Openfire server, they have each other as a contact with the proper JIDs (username@123).

Can anyone provide some insight? I'm lost.

Edit

I'm trying to use Wireshark to catch the XML sent to and from the Openfire server to determine if the recipient of the message is named properly (A@123 instead of A).

Upon using Wireshark, I received this as the XML being transferred:

\302\3469\223\341\3429\000\000\000\000\377\377

I have disabled SSL, I have connected un-securely. I'm not sure why I'm getting SSL type XML, is that what it is?


回答1:


Turns out the answer to this problem was something that was just overlooked.

In the first line of code:

 chat = chatmanager.createChat(username, new MessageListener() {
            public void processMessage(Chat chat, Message message) {}
      });

I didn't make the variable "username" have the proper IP extension. So it was merely "A" instead of "A@123"

Moving "sendUsername" to the top and Changing "username" to "sendUsername" makes everything work great :)

Silly mistake.




回答2:


Using IP addresses is almost always more confusing than you think it is.

There's a good chance you have OpenFire misconfigured, so that the IP address isn't a valid hostname. Go into the admin console, under "System Properties", and make sure that the xmpp.domain property is set to your IP address.



来源:https://stackoverflow.com/questions/4540012/send-xmpp-smack-message

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!