Получение сообщения несколько раз.Если «a» отправил два сообщения, а «b» ответит, a получит сообщение дважды и т. Д. - PullRequest
0 голосов
/ 28 сентября 2019
        while(!(msg = br.readLine()).equalsIgnoreCase("Bye")) {
            Chat newChat = null;
            Message newMessage = null;
            c.sendMessage(msg, talkTo); 
            c.processMessage(newChat, newMessage);

Код находится в основном методе, после того как пользователь введет адрес человека, которого он хочет отправить по указанному выше коду, он выполнит

public void processMessage (Chat chat, Message message) {
        ChatManager chatManager = ChatManager.getInstanceFor(connection);
        chatManager.addIncomingListener(new IncomingChatMessageListener() {
              @Override
              public void newIncomingMessage(EntityBareJid from, Message message, Chat chat) {
                  System.out.println("New message from " + from + ": " + message.getBody());
              }
            }); 

метод получения сообщения

public void sendMessage(String message, String to) throws XMPPException, InterruptedException, XmppStringprepException {
        ChatManager chatManager = ChatManager.getInstanceFor(connection);
        EntityBareJid jid = JidCreate.entityBareFrom(to);
        Chat chat = chatManager.chatWith(jid);

        try {
            chat.send(message);
        } catch (NotConnectedException e) {
            e.printStackTrace();
        }
    }

способ отправки сообщения

пример вывода

введите описание изображения здесь

...