Python+XMPP+MUC

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
U32
User
Beiträge: 25
Registriert: Sonntag 6. Oktober 2019, 13:34

Hallo zusammen!

Ich brauche dringend eure Unterstützung. Ich bin völlig verzweifelt...
Das senden einer XMPP-Nachricht aus einem Python Script heraus an einen einzelnen Empfänger, war relativ einfach und funktioniert auch gut.
Nun möchte ich aber eigentlich Statusmeldungen an ein Gruppe von Empfängern senden.

Ich durchsuche dazu seit Wochen schon diverse Foren und Hilfeseiten, wie z.B.:
1.) https://xmpp.org/extensions/xep-0045.html
2.) http://tmp.marmaro.de/www.ioexception.d ... index.html
3.) https://www.nsoftware.com/kb/xml/09270707.rst
4.) https://stackoverflow.com/questions/112 ... ing-xmpppy
5.) https://www.generacodice.com/de/articol ... mpp-senden
6.) https://stackoverflow.com/questions/113 ... hon-xmpppy

um nur einige zu nennen.
Am Anfang hört sich alles immer "ganz einfach" an (z.B.: Titelzeile), aber am Ende des Tages wird die Nachricht einfach nicht gesendet.
Ich werde noch wahnsinnig!!!
Der folgende Code läuft so durch:

Code: Alles auswählen

#!/usr/bin/python3
# -*- coding: utf-8 -*-

# -------------------- Import Bibliotheken --------------------------------
import sys,time,xmpp


def sendMessageToGroup(server, user, pwd, room, nick, text):
    # ---------------- Authentifizierung ----------------------------------
    jid = xmpp.protocol.JID(user)
    user= jid.getNode()
   
    # ---------------- Verbindung zum Server herstellen -------------------
    conn = xmpp.Client(server, debug=[])
    connection = conn.connect()
    
    if not connection:
        print ('connection failed')
        sys.exit(1)
    
    # ---------------- Am Server anmelden ---------------------------------    
    login = conn.auth(user=jid.getNode(), password=pwd)
    
    if not login:
        print ('authentication failed')
        sys.exit(1)

    # ---------------- Presence im Chat-Raum anmelden ----------------------

    Raum ="%s/%s" % (room, nick)

    #initial_presence = conn.sendInitPresence()
    join = xmpp.protocol.Presence(to=Raum, xmlns='http://jabber.org/protocol/muc')
    print(join)


    # ---------------- Nachricht für diesem Chat-Raum vorbereiten ---------

    msgObj = xmpp.protocol.Message(to=Raum, body=text)
    print(msgObj)   
    
    try:
        conn.send(msgObj)
        
    except Exception as error:
        print(error)

    # ---------------- Verbindung zum Server wieder trennen ---------------
    time.sleep(3)   
    conn.disconnect()
    print('Done.')

# -------------------- Hauptprogramm --------------------------------------
if __name__ == "__main__":
    
    # ---------------- Variablen initialisieren ---------------------------
    server = 'jabber.de'
    user = '<Benutzername>@jabber.de'
    pwd = '<VollDasGeheimePasswort>'

    room = '<Chatroom>@conference.jabber.de'
    nick = 'Wartezimmer'

    text = 'Hallo Welt!'
    
    # ---------------- Funktionsaufruf ------------------------------------
    sendMessageToGroup(server, user, pwd, room, nick, text)

Das bedeutet aber auch keine Fehlermeldung, aber die "Hallo Welt" -Nachricht wird trotzdem nicht gesendet.
Kann mir bitte jemand von euch helfen und mir sagen, was ich falsch gemacht, oder vergessen habe?

Vielen Dank im Voraus!

Beste Grüße und Happy Halloween
U32
U32
User
Beiträge: 25
Registriert: Sonntag 6. Oktober 2019, 13:34

Fast 1700 "Views" innerhalb eines Monats und keine Antwort???
Ist mein Problem wirklich soooo speziell?

Viele Grüße
U32
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Hast du mal das Tutorial versucht:
https://xmpp.readthedocs.io/en/latest/tutorial.html
U32
User
Beiträge: 25
Registriert: Sonntag 6. Oktober 2019, 13:34

Hallo @rogerb,

Vielen Dank für den Tip. Leider habe ich auf der Seite keine passenden Hinweise gefunden.

Beste Grüße
U32
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich habe mir das damals angeschaut, aber ohne, dass man das selbst aufsetzt, wird man da nur durch Dokumentation durchackern nicht weiter kommen. Ich wuerde versuchen mich an die Autoren der Bibliothek oder ein XMPP-spezifisches Forum zu wenden.
Antworten