<p_control_message serverIP="server-2" xmlns="http://test.com/pt">
<cmdReply>
<sessionList>
<session>
<id>5a62ded</id>
<subscriberId>101</subscriberId>
<subscriberName>Angie</subscriberName>
<presence>online</presence>
<note/>
<ipAddress>Some IP</ipAddress>
</session>
</sessionList>
</cmdReply>
</p_control_message>
<p_control_message xmlns="http://test.com/pt">
<cmd>
<systemMessage serverId="50" type="CRITICAL">
<message>Server server-1 is going down for redeploy!</message>
</systemMessage>
</cmd>
</pttv_control_message>
Which is the best way to make a distinction between them so that every
time my app receives the one or the other, parse them correctly?
Thanks
Antonis K.
From a bare socket? TCP? UDP? Or what else?
> Which is the best way to make a distinction between them so that every
> time my app receives the one or the other, parse them correctly?
Use an application level protocol?
Stefan
From a tcp socket using the twisted framework.
Application level protocol... Such as?
Depends on what you *can* use. Do you control the sending side?
Note: giving better details helps others in giving better answers.
Stefan
Well yes you are right!
I can't control the sending side.
The app i'm writing just accepts incoming xml messages. Like the ones
above.
When i receive a message I parse it and print the information.
I know how to parse both xml messages.
What i want is to distinguish them so that i can trigger the
appropriate parsing method.
A.K.
Do they come in concatenated or one per connection?
Stefan
one per connection.
Ah, ok, then just parse the message using (c)ElementTree and look at the
name of the first child below the root node (assuming that both messages
were supposed to have the same root node, as you may have wanted to
indicate in your original posting). A dict dispatch to a function or method
will do just fine.
Stefan
ok that's great, thanks Stefan
i'll try it.
Antonis