无法使用 smackx MultiUserChat API 接收聊天消息
Posted
技术标签:
【中文标题】无法使用 smackx MultiUserChat API 接收聊天消息【英文标题】:Not able to receive chat messages using smackx MultiUserChat API 【发布时间】:2012-03-26 19:09:36 【问题描述】:我正在尝试使用 smack API for android 来开发使用 gmail 帐户的聊天室。我设法创建了一个房间并向群组发送消息。但是当有人回复时,我无法直接在聊天窗口或通过程序(muc.addMessageListener(myMessageListener)和PacketListener)接收传入消息。
ConnectionConfiguration config = new ConnectionConfiguration("talk.google.com", 5222, "gmail.com");
config.setSASLAuthenticationEnabled(true);
connection = new XMPPConnection(config);
connection.connect();
connection.login("kandroid6990@gmail.com", "password");
muc = new MultiUserChat(connection, "private-chat-12325669-dead-beff-feed-fedcba987454@groupchat.google.com");
muc.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
muc.join("kandroid6990");
muc.invite("karthikbaskar3@gmail.com/User1", "Welcome!");
muc.invite("kamaraj6990@gmail.com/User2", "Welcome!");
Message msg = new Message("private-chat-12325669-dead-beff-feed-fedcba987454@groupchat.google.com", Message.Type.groupchat);
msg.addBody(Message.getDefaultLanguage(), messageText);
muc.sendMessage(msg);
【问题讨论】:
你得到答案了吗 【参考方案1】:试试
muc.addMessageListener(myMessageListener);
【讨论】:
在我的问题中通过程序指的是 muc.addMessageListener(myMessageListener);和 PacketListeners【参考方案2】:private MultiUserChat muc; /* Initialize muc */
private void listeningForMessages()
muc.addMessageListener(new PacketListener()
public void processPacket(Packet packet)
final Message message = (Message) packet;
// Do your action with the message
);
【讨论】:
【参考方案3】:试试这个可能有助于接收群聊消息 只需实现群聊监听器
PacketFilter filter = new MessageTypeFilter(Message.Type.groupchat);
XmppTool.con.addPacketListener(new PacketListener()
@Override
public void processPacket(Packet packet)
Message message = (Message) packet;
, filter);
【讨论】:
在 smack 4.1.5 中 MessageTypeFilter 是私有访问,所以我们无法实现这个以上是关于无法使用 smackx MultiUserChat API 接收聊天消息的主要内容,如果未能解决你的问题,请参考以下文章
XMPP Android - 无法创建 MultiUserChat
ClassCastException: org.jivesoftware.smack.PacketReader$4 在传输文件时无法转换为 org.jivesoftware.smackx.packet
无法使用 Smack 创建 MultiUserChat:接收 SmackException$NoResponseException:在回复中未收到响应
asmack 是不是有类似于 smackx 的扩展 jar?