Я пытаюсь создать образец Java-приложения для реализации MultiUserChat XMPP. Некоторые, как я могу создать пользователя и сделать его онлайн в openfire. Может ли кто-нибудь предложить, как присоединиться ко всем пользователям к созданному chatRoom?XMPP Групповой чат java - логика, чтобы присоединиться к пользователям в комнате внутри приглашающего слушателя не работает
Вот мой пример кода внутри класса SampleMultiUserChat Где я приглашаю всех пользователей присоединиться к группе, но он не соединяется. Что мне не хватает?
SampleMultiUserChat(){
oConnectionConfiguration = new ConnectionConfiguration("10.10.1.105",5223);
createChatRoom();
}
/**
* @param args
*/
public static void main(String[] args) {
SampleMultiUserChat oSampleMultiUserChat = new SampleMultiUserChat();
for(int i = 2; i < 4; i++){
oSampleMultiUserChat.openXMPPConnection("user"+i);
oSampleMultiUserChat.createAcceptInvitationListener("user"+i);
oSampleMultiUserChat.inviteToJoinRoom("user"+i);
}
Thread mainThread = Thread.currentThread();
while(true){
try {
mainThread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private void openXMPPConnection(String user){
XMPPConnection oXmppConnection = new XMPPConnection(oConnectionConfiguration);
try {
oXmppConnection.connect();
oXmppConnection.login(user, "60474c9c10d7142b7508ce7a50acf414");
userConnection.put(user, oXmppConnection);
} catch (XMPPException e) {
System.out.println("Exception occured in login in user : "+user);
}
}
private void createChatRoom(){
XMPPConnection oXmppConnection = new XMPPConnection(oConnectionConfiguration);
try {
oXmppConnection.connect();
oXmppConnection.login("user1", "60474c9c10d7142b7508ce7a50acf414");
myChattingRoom = new MultiUserChat(oXmppConnection, "[email protected]");
myChattingRoom.create("roomNickName");
myChattingRoom.sendConfigurationForm(new Form(Form.TYPE_SUBMIT));
} catch (XMPPException e) {
e.printStackTrace();
}
}
private void inviteToJoinRoom(String user){
myChattingRoom.invite(user+"@10.10.1.105", "Please join my chatting room");
System.out.println("sent invitation by "+user);
}
private void sendMessage(String msg){
try {
myChattingRoom.sendMessage(msg);
} catch (XMPPException e) {
System.out.println("Exception occured while sending msg to chat room"+e);
}
}
private void createAcceptInvitationListener(String user){
MultiUserChat.addInvitationListener(userConnection.get(user), new InvitationListener() {
public void invitationReceived(Connection connection, String room, String inviter,
String reason, String password, Message msg) {
try {
myChattingRoom.join(connection.getUser().substring(0, connection.getUser().indexOf("@")));
} catch (XMPPException e) {
e.printStackTrace();
}
}
});
}
Заранее спасибо.
Возможный дубликат [Добавление участников в чатах XMPP] (http://stackoverflow.com/questions/14098075/adding-participants-to-xmpp- чаты) – legoscia
Моя проблема в том, что даже если я приглашу пользователя присоединиться к группе, пользователь не будет присоединен к группе. Это мой вопрос. Есть идеи? @ legoscia – Anonymous
Да, как описано в [этом ответе] (http://stackoverflow.com/a/23953973/113848), нет способа заставить пользователя присоединиться к группе: пользователь получает приглашение и должен решают, как/действовать на нем. – legoscia