Transport
Data is transmitted as XML encoded messages using a transport protocol similar to HTTP. The main difference from HTTP is that IPA is asynchronous. Message encoding is UTF-8.
Example session
The client connects to server and sends the following request:
PUT / IPA/1.0 Content-Length: 52 <TextMessage Id="100" To="123">Testing</TextMessage>
If an acknowledgement was requested (and it was, in this case), the server eventually responds with:
PUT / IPA/1.0 Content-Length: 35 <Ack Id="100" Result="200">OK</Ack>
Transport protocol
The purpose of the transport protocol is to let the receiver know where messages start and end.
Part | Example | Description |
Command |
PUT / IPA/1.0 |
|
Headers |
Content-Length: 52 |
|
Separator | Empty line | |
Message |
<TextMessage Id="100" To="123">Testing</TextMessage> |
XML data |
Requirements
- The command is always PUT, path is always root and protocol is IPA/1.0
- Content-Length is mandatory.
- Other header fields may be added, but the other end may not be able to interpret them.
- XML data is either sent as pure 7-bit ASCII, or UTF-8