gpt4 book ai didi

java - 使用 Smack 库在 XMPP 中发送消息不起作用

转载 作者:行者123 更新时间:2023-12-02 12:11:52 24 4
gpt4 key购买 nike

问题描述

我正在使用 XMPP 和 Smack Android 库编写聊天应用程序。我正在使用下面的代码发送消息,一切正常。

final ChatManager chatManager = ChatManager.getInstanceFor(connection);
chatManager.addChatListener(this);
....

@Override
public void chatCreated(Chat chat, boolean createdLocally) {
chat.addMessageListener(this);
}

@Override
public void processMessage(Chat chat, Message message) {
// Do something here.
}

Chat chat = ChatManager.getInstanceFor(connection).createChat(jid);
chat.sendMessage("message");

问题

不幸的是,上面的API已被弃用org.jivesoftware.smack.chat.Chat,我应该使用org.jivesoftware.smack.chat2.Chat,所以我更改实现如下

final ChatManager chatManager = ChatManager.getInstanceFor(connection);
chatManager.addOutgoingListener(this);
chatManager.addIncomingListener(this);
....
Chat chat = ChatManager.getInstanceFor(connection).chatWith(jid);
chat.send("message");

在这种情况下,我仍然可以收到传入消息,但是当我尝试使用 chat.send("message"); 发送消息时,服务器没有收到任何内容并且 addOutgoingListener code> 未调用回调。

有什么想法吗?

最佳答案

有一个旧版本 smack 的示例:

import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ChatManager;
import org.jivesoftware.smack.ChatManagerListener;
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;

public class Test {
public static void main(String args[]) throws XMPPException {
ConnectionConfiguration config = new ConnectionConfiguration("127.0.0.1", 5222);
XMPPConnection connection = new XMPPConnection(config);
connection.connect();
connection.login("userx", "123456");
ChatManager cm = connection.getChatManager();
Chat chat = cm.createChat("tongqian@tsw-PC", null);
/*
* add listener
*/
cm.addChatListener(new ChatManagerListener() {
@Override
public void chatCreated(Chat chat, boolean create) {
chat.addMessageListener(new MessageListener() {
@Override
public void processMessage(Chat chat, Message msg) {
System.out.println(chat.getParticipant() + ":" + msg.getBody());
}
});
}
});
chat.sendMessage("hello");
while(true);
//connection.disconnect();
}
}

关于java - 使用 Smack 库在 XMPP 中发送消息不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46477971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com