Ich versuche gerade die ganze Zeit eine modifizierte Jabber Nachricht zu verschicken. Und zwar füge ich dem
XML Stream einen X-Tag hinzu:
Delphi-Quellcode:
var
Msg : IJabberMsg;
XMLTag : IXMLTag;
xt : IXMLTag;
begin
Msg := JS.CreateMsg;
Msg.ToJID := 'mp-test@datawerk.de/XMLStream-Demo';
Msg.FromJID := JS.Username;
Msg.MsgType := jmtNormal;
Msg.Body := 'Testnachricht';
XMLTag := JS.CreateXMLTag;
XMLTag := Msg.MsgTag.AddTag('font');
XMLTag.PutAttrib('type', 'mp-extra-tag');
XMLTag.AddBasicTag('color', 'clNavy');
XMLTag.AddTag('size').AddCData('8');
xt := Msg.AddXTag;
xt.Name := 'x';
xt.PutAttrib('xmlns', 'jabber:x');
xt.AddBasicTag('Xtra Tag', 'Xtra Data');
JS.SendMessage(Msg);
Nur wenn ich das mache, kommt die Nachricht nicht an. Lasse ich die Zeilen 19 bis 22 weg, kommt die Nachricht an. Der
XML-Stream wird auch richtig generiert:
XML-Code:
<message id="JCOM_2" to="mp-test@datawerk.de/XMLStream-Demo">
<font type="mp-extra-tag">
<color>
clNavy
</color>
<size>
8
</size>
</font>
<x xmlns="jabber:x">
<Xtra Tag>
Xtra Data
</Xtra Tag>
</x>
<body>
Testnachricht
</body>
</message>
In den Server-Logs taucht leider auch nichts auf, dass da ein kaputter Stream angekommen wäre oder so. Ich verstehe es einfach nicht, denn In Beispielen, die ich gefunden habe, wird es genauso gemacht. Zum Beispiel hier:
http://www.koders.com/delphi/fid7F55...C0242507E.aspx ab Zeile 1401.