【问题标题】:How to send message to all participants of multi user chat room using smack如何使用 smack 向多用户聊天室的所有参与者发送消息
【发布时间】:2016-07-06 05:12:02
【问题描述】:

我正在为群聊创建多用户聊天室,多用户可以在其中聊天。我在 jsp 中为此使用 smack 。加入房间后,我为多用户聊天室添加了消息监听器。

// Get the MultiUserChatManager
        MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(xmppConnection);

        // Create a MultiUserChat using an CustomXMPPConnection for a room
        MultiUserChat multiUserChat = manager.getMultiUserChat(chatRoomName + "@conference." + xmppConnection.getServiceName());

        multiUserChat.addMessageListener(new MessageListener()
        {
            @Override
            public void processMessage(Message message) {
                System.out.println("Message listener Received message in send message: "
                        + (message != null ? message.getBody() : "NULL") + "  , Message sender :" + message.getFrom());
            }
        });

发送消息代码:

Message message = new Message(chatRoomName, Message.Type.groupchat);
message.setBody(msg);
message.setType(Message.Type.groupchat);
message.setTo(chatRoomName);
multiUserChat.sendMessage(message);

我的问题是在消息侦听器中收到消息后,我将如何向其他用户显示消息?

【问题讨论】:

  • 你的问题来了个 180°。首先是“如何向多用户聊天的所有参与者发送消息?” (这是标题仍然说的),现在是“在消息侦听器中收到消息后如何显示消息?”。这显然取决于您用于与用户交互的任何内容,在您的情况下可能是 JSP。那么也许是某种浏览器通知和/或您将聊天可视化?
  • @Flow 很抱歉没有先解决我的问题。我正在努力寻求解决方案

标签: xmpp smack multiuserchat


【解决方案1】:

只需使用MultiUserChat.sendMessage()。

【讨论】:

  • 是的,我已经发送了消息,并且听众也对此做出了回应。我的问题是我将如何向其他用户显示该消息?
  • 对不起,我不明白这个问题。
  • @Jennifer 你必须更加信任回复你的人;)任何客户都会被他自己的听众自动通知。要收到通知,客户必须加入房间并留在房间里,然后添加一个监听器,所以这一切都是自动化的
  • @MrPk 是的,我相信回复我的人。只是我离开了一段时间。所以我无法回复。我将尝试实施答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多