Comm - Formatierung

Es existieren verschiedene Formatierungen für Protokolldaten. Diese erlauben eine Anpassung der übertragenen Daten an die zugrundeliegenden CommTransceiver.

Binärdarstellung

Dies ist die native Darstellung für nahezu alle CommTransceiver. Protokolldaten werden als Byte Array übertragen und der Nachricht jeweils vorangestellt. Diese Darstellung ist am platzsparendsten und entspricht z.B. dem Aufbau von TCP/IP/Ethernet Paketen.

Das Beispiel zeigt eine Serializer/STRAP/appicals Nachricht.

4,193,29,183,x,40,0,24, 1,21,20, 21,1,1, 2,2,1,0, 42,1,222, 41,5,7,221,11,14,0, 46,1,31, 0
	
JSON-Darstellung HTTP

Diese Darstellung wird für den CommTransceiverHTTP gewählt, um die Anwendungs- und Protokolldaten zu übertragen. Nachrichten werden json-kodiert. Die Applikationsnachricht wird als binHex enkodiertes Bytearray übertragen.

Senden von Nachrichten über HTTP POST


POST /comm HTTP/1.1
Host: localhost:8082

{
  "routing": {
    "protocol": "ZoneRouting",
    "userName": "DefaultUser",
    "zoneName": "DefaultZone",
    "clientID": 483538907,
    "destinationAddress": 4294967295
  },
  "transport": {
    "protocol": "STRAP",
    "sourcePort": 10001,
    "destinationPort": 10000
  },
  "application": {
    "messageBinHex": "02011F4C011900000000000000000000"
  },
  "timeStamp": 1435218873781,
}


HTTP/1.1 200 OK
	

Empfangen von Nachrichten über HTTP GET (Polling durch den CommTransceiverHTTP). Die gesendete Sequenznummer bezieht sich auf die letzte erfolgreich empfangene Nachricht.


GET /comm?format=json HTTP/1.1
Host: localhost:8082
x-sequence-number: 316  
x-routing:   { "protocol": "ZoneRouting", "userName": "DefaultUser", "zoneName": "DefaultZone", "clientID": 36324321 }  


HTTP/1.1 200 OK

{
    "sequenceNumber":317,
    "messageArray":[
        {
            "routing":{
                "protocol":"ZoneRouting",
                "zoneName":"DefaultZone",
                "userName":"DefaultUser",
                "clientID":1627044543,
                "destinationAddress":4294967295
            },
            "transport":{
                "protocol":"STRAP",
                "sourcePort":10001,
                "destinationPort":10000
            },
            "application":{
                "messageBinHex":"02011F4C011900000000000000000000"
            },
            "sequenceNumber":317,
            "timeStamp":1435218711000
        }
    ]
}

JSON-Darstellung WebSockets

Diese Darstellung wird für den CommTransceiverWebSocket gewählt, um die Anwendungs- und Protokolldaten zu übertragen. Nachrichten werden json-kodiert. Die Applikationsnachricht wird als binHex enkodiertes Bytearray übertragen.

Senden von Nachrichten


{
	"routing": 
	{
		"protocol": "ZoneRouting",
		"userName": "Peter",
		"zoneName": "Zuhause",
		"clientID": 36324321,
		"destinationAddress": 4294967295
	},
	"transport": 
	{
		"protocol": "STRAP",
		"sourcePort": 2100,
		"destinationPort": 2000
	},
	"application": 
	{
		"messageBinHex": "02011F4C011900000000000000000000"
	}
}	
	

Empfangen von Nachrichten


{
	"MessageArray": 
	[
		{
			"routing": 
			{
				"protocol": "ZoneRouting",
				"userName": "Peter",
				"zoneName": "Zuhause",
				"clientID": 36324321,
				"destinationAddress": 4294967295
			},

			"transport": 
			{
				"protocol": "STRAP",
				"sourcePort": 2100,
				"destinationPort": 2000
			},

			"application": 
			{
				"messageBinHex": "02011F4C011900000000000000000000"
			}
		}
	]
}