You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 8, 2018. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+25-25Lines changed: 25 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
## Introduction
5
5
_The documentation and the relay itself is currently WIP. This is subject to change._
6
6
7
-
The MLAPI.Relay is a relay designed for the UNET Transport to relay traffic between peers that are hidden behind a NAT. Relaying traffic can be expensive but will allow you to communicate no matter what NAT type the host is behind. The MLAPI.Relay works just like the NetworkTransport. Despite the naming, the MLAPI.Relay does not have to be used with the MLAPI library. It can be used with any game built on the NetworkTransport, including the HLAPI. The MLAPI.Relay includes default configurations for use with the MLAPI, HLAPI and an empty template for custom setups. To use the relay simply replace the NetworkTransport with the RelayTransport where the following methods are used:
7
+
The MLAPI.Relay is a relay designed for the UNET Transport to relay traffic between peers that are hidden behind a NAT. Relaying traffic can be expensive but will allow communication between peers, regardless of the host's NAT configuration. The MLAPI.Relay works just like the NetworkTransport. Despite the naming, the MLAPI.Relay does not have to be used in conjunction with the MLAPI library, but rather with any game built on the NetworkTransport (including the HLAPI). The MLAPI.Relay includes default configurations for use with the MLAPI, HLAPI as well as an empty template for custom setups. To use the relay, simply replace "NetworkTransport" with "RelayTransport" where the following NetworkTransport methods are used:
8
8
* Connect
9
9
* ConnectEndPoint
10
10
* ConnectWithSimulator
@@ -22,41 +22,41 @@ The MLAPI.Relay is a relay designed for the UNET Transport to relay traffic betw
22
22
* Written in .NET Core for Cross platform
23
23
* Allows you to limit bandwidth (optional)
24
24
* Update checking (optional). _This will check for updates and inform you of new updates._
25
-
* Deployandforget Auto-update (optional). _The auto update feature allows you to deploy the relay and it will auto update whenever needed._
25
+
* Deploy-and-forget Auto-update (optional). _The auto update feature allows you to deploy the relay and it will auto update whenever needed._
26
26
* Disable home calling. _The MLAPI will only do connections to external sources for update checking purposes. This can be disabled._
27
-
* Non external licence checking. _Even IF, potentially our servers would go down, or we whould end operation. Your licence will continue to work._
27
+
* Non external license checking. _Even if, our servers were to go down (or in the unlikely event that we would shut down this service), your license would continue to work._
28
28
29
29
## Matchmaking
30
-
Unlike Unity's relay. The MLAPI.Relay does not require you to use any specific matchmaker. The MLAPI.Relay will pass the destination address when connecting rather than a relayspecific roomId. This allows you to run the MLAPI.Relay with any matchmaker or without a matchmaker all together.
30
+
Unlike Unity's relay, the MLAPI.Relay does not require you to use any specific matchmaker. The MLAPI.Relay will pass the destination address when connecting rather than a relay-specific roomId. This allows you to run the MLAPI.Relay with any matchmaker (or without a matchmaker all together).
31
31
32
-
## Special setup
33
-
The MLAPI.Relay REQUIRES there to be at least ONE reliable channel type. If it is plain reliable or has sequencing or fragmenting support does not matter.
32
+
## Setup requirements
33
+
The MLAPI.Relay ***requires*** there be at least _one_ reliable channel type (regardless of what subtype of reliable channel that is).
34
34
35
35
## Configuration
36
-
The relay has a config file called config.json. The config contains 3 parts
36
+
The relay has a configuration file called *config.json* which consists of the three following parts:
37
37
38
-
1. connectionConfig
38
+
###connectionConfig
39
39
40
-
This is the NetworkTransport connectionConfig. These options have to match up with your games connectionConfig.
40
+
This is the NetworkTransport connectionConfig. These options have to match up with your game's connectionConfig.
41
41
42
-
2. globalConfig
42
+
###globalConfig
43
43
44
-
This is the NetworkTransport GlobalConfig. This instructs the NetworkTransport how the NetworkTransport should work.
44
+
This is the NetworkTransport GlobalConfig. This tells the NetworkTransport how it should work.
45
45
46
-
3. relayConfig
46
+
###relayConfig
47
47
48
-
Relay config contains many different fields.
48
+
Relay config contains many different fields:
49
49
50
-
* maxConnections is the maximum amount of connections the relay can support.
51
-
* port is the relay port
52
-
* bufferSize is the size of the buffer that will be allocated for messages
53
-
* updateChecking toggles wheter or not the relay should do web requests to check for updates. This will not by itself enable autoupdate.
54
-
* autoUpdate toggles wheter or not the relay will automatically download and deploy the latest updates. This requires updateChecking to be turned on.
55
-
* licenceKey is the licence key you got when purchasing your licence. If this is empty or invalid, a trial licence will be used
56
-
* channels is the list of channelTypes that should be used. In the order they are added. Note that some high level libraries have default channels that are added in addition to the user channels. Therefor the relay has templates for the MLAPI default channels and the HLAPI channels. When using these templates, the channels added are only the library channels. User channels have to be added additionaly.
57
-
* bandwidthGracePeriodLength is the length of the bandwidth grace peridod from the point where a client connects
58
-
* gracePeriodBandwidthLimit is the amount of bytes per second that is allowed during the bandwidth grace period for each client. If this 0 or less. No limit will be used during the grace period.
59
-
* bandwidthLimit is the amount of bytes per second that is allowed to be used for each client outside of the grace period. If this is 0 or less, no limit will be used.
50
+
***maxConnections** is the maximum amount of connections the relay can support.
51
+
***port** is the the port on which the relay will operate
52
+
***bufferSize** is the size of the buffer that will be allocated for messages (both inbound and outbound)
53
+
***updateChecking** toggles wheter or not the relay should do web requests to check for updates. **NOTE:** this will not enable auto-update! If auto-update is *disabled* and this is *enabled* it will simply notify you if there is a newer version available.
54
+
***autoUpdate** toggles whether or not the relay will automatically download and deploy the latest release of the MLAPI.Relay (if there is a newer version than the currently used one). This requires **updateChecking** to be turned on.
55
+
***licenceKey** is the license key you got when purchasing your license. If this is empty or invalid, a trial license will be used.
56
+
***channels** is the list of channelTypes that should be used (in the order they are added). Note that some high level libraries have default channels that are added in addition to the user channels. Due to this tendency, the relay has templates for the default channel configurations of both the MLAPI and the HLAPI. When using these templates, the channels added are only the library channels; additional user channels must be added manually. **NOTE:** mismatched channel configurations *will* result in errors and will prevent clients and/or hosts from connecting to the relay!
57
+
***bandwidthGracePeriodLength** is the length of the bandwidth grace period from the point when a client connects.
58
+
***gracePeriodBandwidthLimit** is the amount of bytes per second that is allowed during the bandwidth grace period for each client. If this 0 or less, the traffic will not be limited during the grace period.
59
+
***bandwidthLimit** is the amount of bytes per second that is allowed for each client after their respective the grace periods. If this is 0 or less, no limit will be set.
60
60
61
-
## Trial licence
62
-
The trial licence has no limitations except that only 20 concurrent connections are allowed. This is to allow for endless evaluation and development.
61
+
## Trial license
62
+
The trial license has no limitations except that only 20 concurrent connections are allowed. This is to allow for endless evaluation and development.
0 commit comments