# Network Transport

NetworkTransport is the logic used to send and receive messages between each network node in-game.

ObjectNet brings with it its own embedded transport system called OnlineObjectTransport, and also native support Unity Transport system.

<details>

<summary>Modifying Transport</summary>

1. To select another transport system click on the eye icon located on the right side of NetworkManager
2. A new "Transport Database" window shall appear.

<figure><img src="https://content.gitbook.com/content/NG75ky1pR1kRokWLRnzy/blobs/siwpI8Udg521tIfLn9b6/NewItem21.png" alt=""><figcaption></figcaption></figure>

3. Click on the green selector to change the selected transport system.

<figure><img src="https://content.gitbook.com/content/NG75ky1pR1kRokWLRnzy/blobs/Kc90g0BVqzHO6xhS5GZC/NewItem23.png" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Creating custom Transport System</summary>

ObjectNet provides the possibility to anyone create and use their own Transport System or implement any 3-part transport system.

To create a new transport system, you shall implement a minimum of 2 classes inherited from the following interfaces.

* <mark style="color:purple;">ITransportClient</mark>

Provides an implementation of connection from the client perspective.

* <mark style="color:purple;">ITransportServer</mark>

Provides an implementation of connection from the server perspective.

The both interfaces inherited from ITransport which has the signature on needed methods to be implemented.

You can use as a reference the already contained Transport Systems.

![](https://onlineobject.net/objectnet/docs/manual/lib/NewItem25.png)

<mark style="color:blue;">**ClientEmbedded**</mark><mark style="color:blue;">,</mark> <mark style="color:blue;"></mark><mark style="color:blue;">**ServerEmbedded**</mark> and <mark style="color:blue;">**TransportEmbedded**</mark> is the wrapper of OnlineObjectTransport system to work with ObjectNet.

<mark style="color:blue;">**UnityClient, UnityServer**</mark> and <mark style="color:blue;">**UnityTransport**</mark> is the wrapper of UnityTransport system to work with ObjectNet.

You can use any of them as a reference to implement your transport system.

</details>

<details>

<summary>Registering custom Transport System</summary>

1. To select another transport system click on the eye icon located on the right side of NetworkManager<br>
2. A new "Transport Database" window shall appear.

![](https://onlineobject.net/objectnet/docs/manual/lib/NewItem21.png)

3. The following fields must be filled

* Transport Name :
  * The literal name of the transport system
* Server Class :
  * Name space and class which implements ITransportServer interface.
* Client Class&#x20;

  * Name space and class which implements ITransportClient interface.

4. Click on Register button

![](https://onlineobject.net/objectnet/docs/manual/lib/NewItem26.png)

</details>
