- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定如何正确收听 MultiUserChats,因为显然有两种不同的收听方式。
第一种方式是为每个房间添加一个MessageListener,像这样:
MultiUserChat muc = new MultiUserChat(connection,"MyGroup");
muc.addMessageListener(new PacketListener() {
@Override
public void processPacket(Packet packet) throws NotConnectedException {
// TODO Auto-generated method stub
}
});
第二种方法是像收听普通的单聊天消息一样收听:
PacketFilter filter = new MessageTypeFilter(Message.Type.groupchat);
connection.addPacketListener(new PacketListener() {
@Override
public void processPacket(Packet packet) {
Message message = (Message) packet;
if (message.getBody() != null) {
final String fromName = StringUtils.parseBareAddress(message.getFrom());
final String Rtext = message.getBody();
考虑到我也在监听文件传输,你能帮我看看哪种方式是正确的吗?
最佳答案
由于原始代码都有错误,我使用了这段代码:
PacketFilter messageFilter =
new AndFilter(
new FromMatchesFilter(roomName+"@conference.reza-hp",true),
new MessageTypeFilter(Message.Type.groupchat));
messageFilter = new AndFilter(messageFilter, new PacketFilter() {
public boolean accept(Packet packet) {
Message msg = (Message) packet;
return msg.getBody() != null;
}
});
addMessageListener(messageFilter);
}
public static void addMessageListener(PacketFilter messageFilter) {
connection.addPacketListener(new PacketListener() {
@Override
public void processPacket(Packet packet) throws NotConnectedException {
Message message = (Message)packet;
String roomName = (message.getFrom().split("\\@conference.reza-
hp"))[0];
String fromUser =
(StringUtils.parseResource(message.getFrom()).split("@\\@reza-hp"))[0];
System.out.println("=>"+"Room : "+roomName + "From
user:"+fromUser + ": "+message.getBody());
}
}, messageFilter);
}
关于xmpp - 如何在 Smack 中正确收听 MultiUserChat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808798/
我不确定如何正确收听 MultiUserChats,因为显然有两种不同的收听方式。 第一种方式是为每个房间添加一个MessageListener,像这样: MultiUserChat muc = ne
我正在使用 asmack 最新版本(现在)。而且我无法在 Android 上创建 MultiUserChat。 这是我在日志中得到的: E/AndroidRuntime( 558): java.lan
我们如何初始化 MultiuserChat,这些是细节,要创建 MultiuserChat 类的对象,我们需要连接和房间名称作为参数//这是 MultiUserChat 的构造函数 public
我正在尝试在 Android 上使用 Smack 加入 MultiUserChat。目前我可以完美地进行一对一聊天,并且我已连接到服务器,正如我在线显示的那样。我遵循了提供的示例 here . 我有以
我是堆栈上的新用户,但我在 aSmack 库 3.2.1 for android 中遇到 MultiUserChat 问题。我正在使用“gtalk.google.com”服务器。这是一个简单的例子,我
我尝试用 Java 创建一个多用户聊天。我正在使用 smack 库。这是我创建多用户聊天的代码: MultiUserChat muc = new MultiUserChat(connection, "
我正在尝试使用适用于 Android 的 smack API 开发使用 gmail 帐户的聊天室。我设法创建了一个房间并向群组发送消息。但是当有人回复时,我无法直接在聊天窗口或通过程序(muc.add
我创建了一个 Xmpp 聊天应用程序,我在其中实现了一对一和群聊。聊天本身运行良好。问题出在群聊中。我创建了一个有 2-3 名成员的群组,聊天再次正常,但是当我终止应用程序并重新启动它时,我没有从我创
我正在尝试构建一个带有 OMEMO 加密的 MUC 平台,以便在 Android 应用程序上使用。我正在使用 Ejabberd (v17.11) 和 Smack 库 (v4.2.1)。 MUC 房间是
我正在尝试使用 smackx api 实现 MultiUserChat。 到目前为止,我设法创建了一个新的 MultiUserChat 房间,加入了它,并发出了邀请。我现在的问题是如果有人加入或离开聊
我正在使用 aSmack(适用于 Android 的 Smack 端口)连接到 XMPP 服务器(Openfire 3.7.1)并与之通信。就使用 MultiUserChat 类发送消息而言,我可以获
我已经使用 Smack Api(4.1.4) 成功地为 XMPP 创建了一个登录连接。现在我正在尝试使用创建 MultiUserChat, try { String myMUC
我是一名优秀的程序员,十分优秀!