2014-11-22 2 views
0

Я создал проект java, используя библиотеку smack. Также я создал на своем компьютере с сервером xmpp openfire. адрес моего сервера: 192.168.1.4 порт: 5222smack xmpp library Java

моя проблема отправки/приема сообщений. То есть, когда я пытаюсь отправить сообщение другому пользователю, пользователь его не получает. Теперь поместите мою Java программу:

ConnectionConfiguration config; 
    XMPPConnection con; 

    config = new ConnectionConfiguration("192.168.1.4", 5222); 
    con = new XMPPTCPConnection(config); 

    con.connect(); 

    /*This code is inside the button event log-in*/ 
    con.login(txtUsername.getText(), txtPassword.getText()); 


    /*this code is internal event of sending message to another user*/ 
    ChatManager chatmanager = ChatManager.getInstanceFor(con); 
    final Chat newChat = chatmanager.createChat(txtDestUsers.getText(), new MessageListener() { 

         @Override 
          public void processMessage(Chat chat, Message message) { 
           txtRicevuti.setText(message.getBody()); 
          } 
         }); 

         try { 
          newChat.sendMessage(txtMessage.getText()); 
         } 
         catch (XMPPException | NotConnectedException e) { 
          System.out.println("Error Delivering block"); 
         } 

txtDestUsers = contains the name of the recipient type [email protected] 
txtMessage = message to be sent 
txtUsername = myUsername ([email protected]) 
txtPassword = myPassword 
txtRicevuti = received messages 

в качестве теста я выполнил программу в два раза, и я вошел в с двумя счетами: [email protected] и [email protected]

если я пытаюсь отправьте сообщение себе, приходит сообщение. Как будто txtDestUsers вставляют имя другого пользователя, сообщение не поступает.

Как это сделать?

ответ

-1
Message message=new Message(); 
message.setTo(<JabberId>); 
message.setType(Message.Type.chat); 
message.setBody("Hello World!"); 

con.sendPacket(message); 

Это, как вы отправляете сообщение

PacketFilter filter = new MessageTypeFilter(Message.Type.chat); 
con.addPacketListener(new PacketListener() { 
public void processPacket(Packet packet) { 
Message message = (Message) packet; 
String body = message.getBody(); 
String from = message.getFrom(); 
} 
}, filter); 

Над сниппета, как вы получите сообщение.

Для получения дополнительной информации см. Это: http://developer.samsung.com/technical-doc/view.do?v=T000000119