1 | |
---|
2 | |
---|
3 | |
---|
4 | WORKING_STACK: |
---|
5 | ============== |
---|
6 | - it works to connecto to a master server which is connected to a proxy itself |
---|
7 | |
---|
8 | |
---|
9 | |
---|
10 | UNSOLVED: |
---|
11 | ========= |
---|
12 | - what if the proxy server gets a new client and wants to add it to the game? There are some problems waiting in the network game manager |
---|
13 | - actualy the whole message sending system won't work in this network topic. proxys have to relay messages to clients |
---|
14 | - the clients cant get its ip in the handleHandshakes without throuwing sigseg |
---|
15 | |
---|
16 | |
---|
17 | |
---|
18 | This readme just gives some hints for the general network programming: |
---|
19 | |
---|
20 | ARCHITECTURE: |
---|
21 | The NetworkStream is in the center of this structure. |
---|
22 | |
---|
23 | |
---|
24 | UserId: |
---|
25 | ======= |
---|
26 | containing the id of a user (==client). This id must be unique within a orxonox network its used especialy in the NetworkStream for node identification and also in the Synchronizeable base class for permissions checking (PERMISSION_OWNER) |
---|
27 | |
---|
28 | the connections belonging tu toe userId's are stored in the NetworkStream::peers std::map. As a keyvalue the userId's are used. Therefore the usage of this peers map is very delicate. Don't ever try to add anything you are not sure about the id stuff. |
---|
29 | |
---|
30 | There are some reserved id's, don't mess with them: |
---|
31 | 0 : Master Server |
---|
32 | 1 : First Proxy Server |
---|
33 | 2 : Second Proxy Server |
---|
34 | 3 : Third Proxy Server |
---|
35 | 4 : Fourth Proxy Server |
---|
36 | . |
---|
37 | . |
---|
38 | . |
---|
39 | NET_MAX_PROXY The maximal number of proxy servers |
---|
40 | NET_MAX... + 1 First Client |
---|
41 | NET_MAX... + 2 Second Client |
---|
42 | . |
---|
43 | . |
---|
44 | . |
---|
45 | NET_MAX_CONNECTION Last client |
---|
46 | |
---|
47 | The proxy server ids are assigned as stated in the data/trunk/config/network_settings.conf, the first proxy server in the list gets the id NET_ID_PROXY_01 and so on. |
---|
48 | |
---|
49 | |
---|
50 | |
---|
51 | uniqueId: |
---|
52 | ========= |
---|
53 | uniqueId is an id (unique :D) for each synchronizeable to be identified in a network. the number space for uniqueIds goes from 0 to maxplayers - 1 |
---|
54 | |
---|
55 | |
---|
56 | permissions: |
---|
57 | ============ |
---|
58 | Each synchronizeable variable has some write permissions. this permission systems allows to manage which network nodes are able to write the variables. |
---|
59 | PERMISSION_MASTER_SERVER : only the master server can write this variable |
---|
60 | PERMISSION_PROXY_SERVER : only the proxy server can write this variable |
---|
61 | PERMISSION_OWNER : only the owner can write this variable |
---|
62 | PERMISSION_ALL : all clients can write this variable |
---|
63 | |
---|
64 | |
---|
65 | |
---|
66 | |
---|
67 | |
---|
68 | NetworkStream PeerInfo list: (peers) |
---|
69 | ===================================== |
---|
70 | The network node with the offset 0 is always the server to which the client must connect to (in case there are connections to other hosts at the same time). |
---|
71 | |
---|
72 | |
---|
73 | |
---|