xmpp mit Python: xmpp.protocol.InvalidFrom: (u'invalid-Aus‘, '')
Frage
cl = xmpp.Client('myserver.com')
if not cl.connect(server=('mysefver.com',5223)):
raise IOError('cannot connect to server')
cl.RegisterHandler('message',messageHandler)
cl.auth('myemail@myserver.com', 'mypassword', 'statusbot')
cl.sendInitPresence()
msgtext = formatToDo(cal, 'text')
message = xmpp.Message('anotheremail@myserver.com', msgtext)
message.setAttr('type', 'chat')
cl.send(message)
Ich erhalte die folgende Fehlermeldung, wenn ich versuche, es zu laufen:
xmpp.protocol.InvalidFrom: (u'invalid-from', '')
Warum ist das passiert :(
Lösung
Aus dem XMPP-Protokoll Spezifikation :
Wenn der Wert des ‚von‘ Adresse nicht die durch den Eingang vertreten Hostnamen Übereinstimmen Server beim Öffnen der TCP-Verbindung (oder eine validierte Domain davon, wie eine validierte Domäne des Empfangsserver Hostnamen oder ein andere validierte Domäne von dem Eingang Server gehostet), dann muss der autoritativen Server einen Strom erzeugen Fehlerzustand und beenden sowohl den XML-Stream und die zugrunde liegenden TCP-Verbindung.
was im Grunde bedeutet, dass, wenn der Absender nicht von den XMPP-Server erkannt wird, wird es mit dieser Nachricht antworten. XMPP liefert einen Registrierungsmechanismus: xmpp.features.register