Latest revision |
Your text |
Line 1: |
Line 1: |
− | [[category:Geometry Service]]
| + | {{DesignDocument}} |
− | [[category:GSNet Protocol]]
| |
− | ----
| |
| | | |
− | {|
| + | List of [[NetMsgTypes]]. |
− | |width=344 valign=top|[[Image:GSNet_Symbol.png|left|top|GSNet]]
| |
− | |The Geometry Service Network (GSNet) Protocol is a TCP/IP based protocol designed to facilitate socketed communications between Geometry Service Nodes on a network. A Geometry Service Node is defined as any softwares that supports communication via the GSNet Protocol.
| |
− | <br />
| |
− | __TOC__
| |
− | |}
| |
− | | |
− | ----
| |
− | | |
− | | |
− | | |
− | =GSNet Msg Description=
| |
− | ==Header==
| |
− | The header of the GSNet Msg contains the information necessary for quickly determining authenticity, type and length. Geometry Service's network library, libNetwork, has a header byte layout that looks like this:
| |
− | <br /><br />
| |
| | | |
− | {|style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #666699; padding: 0;"
| + | List of [[Common NetMsg Exchanges]] |
− | |style="border: 1px solid #666699; background-color: #666699; color: #FFFFFF; width: 180px;"|'''Element'''
| |
− | |style="border: 1px solid #666699; background-color: #666699; color: #FFFFFF; width: 180px;"|'''Length'''
| |
− | |style="border: 1px solid #666699; background-color: #666699; color: #FFFFFF; width: 180px;"|'''Value'''
| |
− | |-
| |
− | |style="border: 1px solid #666699;"|MsgType
| |
− | |style="border: 1px solid #666699;"|int16 (2 bytes)
| |
− | |style="border: 1px solid #666699;"|
| |
− | |-
| |
− | |style="border: 1px solid #666699;"|MessageLength
| |
− | |style="border: 1px solid #666699;"|int32 (4 bytes)
| |
− | |style="border: 1px solid #666699;"|Does *NOT* include the type or length, so is packet size - 6
| |
− | |-
| |
− | |style="border: 1px solid #666699;"|MessageUUID
| |
− | |style="border: 1px solid #666699;"|[[GSNet_String|String (Variable bytes)]]
| |
− | |style="border: 1px solid #666699;"|
| |
− | |-
| |
− | |style="border: 1px solid #666699;"|HasRegardingUUID
| |
− | |style="border: 1px solid #666699;"|Boolean (1 byte)
| |
− | |style="border: 1px solid #666699;"|
| |
− | |-
| |
− | |style="border: 1px solid #666699;"|RegardingMessageUUID
| |
− | |style="border: 1px solid #666699;"|[[GSNet_String|String (Variable bytes)]]
| |
− | |style="border: 1px solid #666699;"|
| |
− | |}
| |
− | | |
− | | |
− | * '''MsgType:''' 2 byte integer value that tells what type of message this is.
| |
− | * '''MessageUUID:''' Standard UUID for this message. Currently stored as a string.
| |
− | * '''HasRegardingUUID:''' Boolean flag that indicates whether there is a Regarding UUID or not.
| |
− | * '''RegardingMessageUUID:''' Standard UUID that indicates this NetMsg is a response to another NetMsg.
| |
− | | |
− | ----
| |
− | | |
− | ==Data==
| |
− | ----
| |
− | The Data load of a NetMsg is, obivously, the important and unique part. Data Loads can be as small as zero (in the case of a TypeOnlyMsg) or many kilobytes long.
| |
− | | |
− | Here is a list of [[NetMsgTypes|NetMsg types]] and here is a list of [[Common NetMsg Exchanges]].
| |