Hi,
I'm working on a libjingle application, and I've got some problem with
xml handling.
I tried to make a XmppTask class which handles message stanzas. I
found an example here:
http://groups.google.com/group/google-talk-open/browse_thread/thread/c47cd09cb676759f/3d541f1b1be3be86?lnk=st&q=textsessionclient&rnum=1&hl=en#3d541f1b1be3be86
The task works fine until it gets to ProcessStart(). I'm sure that the
message arrives fine to the host. And I put it in the MessageQueue in
HandleStanza().
int TextSessionClient::ProcessStart()
{
const XmlElement *stanza = NextStanza();
if (stanza == NULL)
return STATE_BLOCKED;
const XmlChild *child = stanza->FirstChild();
if (!child)
return STATE_START;
const XmlElement *body = child->AsElement();
if (body != NULL) {
std::cout << "received message " << body->BodyText().c_str()
<<
" from " << stanza->Attr(QN_FROM).c_str() << std::endl;
XmlElement *result = new XmlElement(QN_MESSAGE);
result->AddAttr(QN_FROM, GetClient()->jid().Str());
result->AddAttr(QN_TO, stanza->Attr(QN_FROM));
result->AddAttr(QN_TYPE, STR_CHAT);
// result->AddAttr(QN_ID, stanza->Attr(QN_ID));
result->AddElement(new XmlElement(QN_BODY));
result->AddText("test reply", 1);
SendStanza(result);
}
return STATE_START;
}
So the problem is somewhere here.
const XmlElement *body = child->AsElement();
if (body != NULL) {
Body is always NULL. I don't know how I should read out the content of
the message.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"google-talk-open" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/google-talk-open?hl=en
-~----------~----~----~----~------~----~------~--~---