Adding participants to XMPP chat rooms

2019-02-21 19:18发布

问题:

I want to implement Group Chat in my application, for that purpose i am using MUC chat rooms to implement the same.

Here I want to add a list of members( i have the JID's) to the room. I want to add them internally to all the members in the list. How can i add them without inviting them.

And after adding the members i want to implement a functionality that whenever a user of the chat room messages or chat, it should be delivered to all the other users.

The main problem is how to add members to the chat room

code:

private void createRoom(){

        MultiUserChat privateRoom = new MultiUserChat(connection, "testGroup@conference.abc.com");
        try {
            privateRoom.join("gaurav","123456");
            privateRoom.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
            System.out.println("Room Created!!!");

            Message message = new Message("testGroup@conference.abc.com", Message.Type.normal);
            message.setBody("Happy User");

            privateRoom.sendMessage(message);



        } catch (XMPPException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

回答1:

XEP-0045 doesn't contain a scenario where a client is forcibly made a participant of a chat room. While you can send an invite to a contact (either directly to the user, or through the MUC server), the contact doesn't actually join the chat room until the contact's client requests to join the room.

Thus, adding a user to a chat room without inviting them requires special support in the user's client. Possibly, the client could be modified to automatically accept chat room invites from trusted contacts.