Permanente Gruppenchats

Hallo,

toll wäre die Möglichkeit permanente Chatgruppen einrichten zu können, so dass der Gruppenchat nicht jedesmal neu angelegt werden muss.
Wäre bei uns im Unternehmen auf jedenfall ein Feature, welches die Akzeptanz des Mobydick Clients erheblich steigern würde, da andere Chatsysteme dann nicht mehr von Nöten wären.

Viele Grüße
leftwingerl

Hallo leftwingerl,

als Standardfunktion steht das schon lange bei uns auf der TODO-Liste, aber bisher war es Zeitlich immer zu eng, bzw. andere Dinge wichtiger. Es gibt eine Möglichkeit das über ein Flex-Panel zu Skripten, aber die Administration des ganzen ist nicht gerade sehr bequem. (Man muss das Flexpanel bearbeiten um permanent einen Benutzer hinzuzufügen, es ist nicht möglich jemanden “rauszuwerfen” usw.)

Ich habe den Thread hier mal in unserem Feature-Request verlinkt und es nochmal zur Diskussion gestellt.

Grüße,
Jan

Hallo Jan,

vielen Dank für die schnelle Antwort. Der Weg über das Flexpanel wäre zumindest ein temporärer Workaround für uns. Gibt es da schon ein entsprechendes Widget, bzw. gibt es dafür einen Beispiel Code?

Viele Grüße
Stephan (leftwingerl)

Hallo Stefan,

jap, wir haben bei uns Intern die folgende Lösung im Einsatz:

  1. Auf das Openfire WebUI surfen (ip-der-mobydick:9090)
  2. Anmelden (mit den selben Anmeldeinformationen wie auch für den mobydick admin)
  3. Manuell einen persistenten Multi-User-Chat erzeugen (siehe Screenshot), dabei den Raum-Namen merken!

  4. Im mobydick WebUI ein neues Flexpanel erzeugen, automatisch öffnen hierbei auf “JA” stellen
  5. Das Flexpanel den Benutzern zuordnen die Mitglieder des Chats sein sollen
  6. Den folgenden Code im Flexpanel verwenden, und den Raum-Namen anpassen

Im Beispiel ist der Raumname einfach “dev”, dieser String muss dann im Flexpanel-Code entsprechend ersetzt werden


import net.pascom.ahab.client.services.ConnectionService
import net.pascom.ahab.fxui.FxUtils
import net.pascom.ahab.muc.MUCActivity
import net.pascom.ahab.muc.MucMessageHandler
import net.pascom.ahab.muc.services.MUCService
import org.jivesoftware.smack.XMPPConnection
import org.jivesoftware.smack.util.StringUtils
import org.jivesoftware.smackx.muc.MultiUserChat
import org.openide.windows.TopComponent
import org.openide.windows.WindowManager
import net.pascom.ahab.roster.data.ContactEntryData;
 
frame.hide()
if(!MUCService.getDefault().startMUC("dev",new ArrayList<ContactEntryData>())) {
    XMPPConnection xmppConnection = ConnectionService.getDefault().lookup(XMPPConnection.class);
    MUCService.getDefault().invitationReceived(xmppConnection, "dev@conference.mobydick", "", "", "", null)
}
TopComponent tc = WindowManager.getDefault().findTopComponent("MeContentTopComponent");
tc.open();

Das Ergebnis des ganzen: Wenn der User seinen Client öffnet, wird automatisch eine Chat-Aktivität mit dem betreffenden Raum geöffnet und man kann Chatten. Die Chat-Historie bleibt erhalten solange der Openfire-Server nicht neu gestartet wird.

Achtung: Das Skript verwendet u. a. interne APIs des Clients die sich bei einem Update ohne große Vorwarnung ändern könnten.

Grüße,
Jan

Klasse, danke. Funktioniert wunderbar.

Schön wenn es klappt!

Dank dieses Beitrags Flexpanel-seit-Update-7-15 mein heutiges Problem mit dem Gruppenchat beheben können.
Also bitte beachten: Wer schon die Version 7.15 hat muss im obigen Code “@conference.mobydick” durch “@conference.pascom” ersetzen, dann funktioniert der permanente Gruppenchat wieder.

Gibt es auch einen Weg, dass der persistente Raum im neuen UC Client angezeigt wird?