# Global

##

### Methods

#### onLogin(client, appName, appVersion)

Das Login Event muss der Client vor Ablauf von "timeOutInSec" absenden, damit die Verbindung aufrecht erhalten wird und die Verbindung vom Server verwaltet wird.
Beim Senden des Events muss das JSONObjekt "data" mitgesendet werden, dass die noetigen Felder enthaelt.

##### Parameters:

Name | Type | Description
--- | --- | ---
`client` | client | Client, der sich einloggt
`appName` | string | Name des Namensraumes, in den der Client sich einloggen moechte.
`appVersion` | string | Version der Anwendung des Clients
`data.UUID` | * | Die UUID des Clients
`data.app` | string | Name der App mit Version (z.B. "bao0.0.1")
`data.username` | string | Der gewaehlte Username des Clients

Source:
  - ServerV0_01.js, line 274

##### Fires:

- event:login

#### onNachricht(appName, nachricht)

Leitet eine Nachricht an einen anderen Client oder an alle Clients in einem Raum weiter.
Beim Senden dieses Events muss das JSONObjekt "nachricht" mitgesendet werden, das die noetigen Felder enthaelt.
Entweder nachricht.UUID oder nachricht.room muss angegeben werden.

##### Parameters:

Name | Type | Description
--- | --- | ---
`appName` | string | Der Namensraum, in dem die Nachricht weitergeleitet wird
`nachricht` | object |

##### Properties:

Name | Type | Description
--- | --- | ---
`nachricht.UUID` | string | optionaler Parameter, falls ein einzelner Client benachrichtigt werden soll
`nachricht.raum` | string | optinaler Paramter, falls jeder Client in einem Raum benachrichtigt werden soll
`nachricht.type` | string | Beschreibung des Inhalts der Nachricht
`nachricht.inhalt` | object | Inhalt der Nachricht

Source:
  - ServerV0_01.js, line 322

##### Fires:

- event:nachricht

#### onRaumBeitreten(client, raumObjekt)

Der Client tritt einem Raum bei.
der Raum muss im Feld "raum" eines JSONObjektes mitgesendet werden.

##### Parameters:

Name | Type | Description
--- | --- | ---
`client` | client | Client, der dem Raum beitreten will
`raumObjekt` | object |

##### Properties:

Name | Type | Description
--- | --- | ---
`raumObjekt.raum` | string | Der Raum, der betreten werden soll

Source:
  - ServerV0_01.js, line 359

##### Fires:

- event:benutzerTrittRaumBei

#### onRaumVerlassen(raumObjekt)

Der Client verlaesst einen Raum.
Der Raum muss im Feld "raum" eines JSONObjektes mitgesendet werden.

##### Parameters:

Name | Type | Description
--- | --- | ---
`raumObjekt` | object |

##### Properties:

Name | Type | Description
--- | --- | ---
`raumObjekt.raum` | string | Der Raum, der verlassen werden soll

Source:
  - ServerV0_01.js, line 390

##### Fires:

- event:userVerlaesstRaum

#### onZeigeBenutzerImRaum(appName, client, raumObjekt)

Gibt alle Clients zurueck, die sich im jeweiligen Raum befinden mit dem Event "zeigeUserImRaum" zurueck.
Der Raum muss im Feld "raum" eines JSONObjektes mitgesendet werden.

##### Parameters:

Name | Type | Description
--- | --- | ---
`appName` | string | Der Namespace, in dem sich der Raum befindet
`client` | client | Client, der die Benutzerliste angefragt hat
`raumObjekt` | object |

##### Properties:

Name | Type | Description
--- | --- | ---
`raumObjekt.raum` | string | Raum, dessen Benutzer bestimmt werden

Source:
  - ServerV0_01.js, line 421

##### Fires:

- event:zeigeUserImRaum

#### roomClientMapping()

Gibt eine Map aller Räume und deren Clients zurueck.

Source:
  - ServerV0_01.js, line 463

#### webseite(request, response)

Gibt die aktuelle Situation des Servers als HTML-Seite aus.

##### Parameters:

Name | Type | Description
--- | --- | ---
`request` | * | Der Request der zum Server geschickt wird.
`response` | * | Die Response die vom Server zum Client geschickt wird.

Source:
  - ServerV0_01.js, line 24

### Events

#### login

true, wenn der Login erfolgreich war, sonst false

##### Type:

- boolean

Source:
  - ServerV0_01.js, line 288

#### nachricht

Wird benutzt um einem Client oder allen Clients in einem Raum eine Nachricht zuzustellen.

##### Type:

- object

##### Properties:

Name | Type | Description
--- | --- | ---
`nachricht.UUID` | string | optionaler Parameter, falls ein einzelner Client benachrichtigt werden soll
`nachricht.raum` | string | optinaler Paramter, falls jeder Client in einem Raum benachrichtigt werden soll
`nachricht.type` | string | Beschreibung des Inhalts der Nachricht
`nachricht.inhalt` | object | Inhalt der Nachricht

Source:
  - ServerV0_01.js, line 328

#### userTrittRaumBei

Benachrichtigt alle Clients im Raum, welcher Client den Raum betreten hat

##### Type:

- object

##### Properties:

Name | Type | Description
--- | --- | ---
`benutzer.username` | string | Der Username des Users, der den Raum betreten hat
`benutzer.UUID` | string | Die UUID des Users, der den Raum betreten hat

Source:
  - ServerV0_01.js, line 367

#### userVerlaesstRaum

Benachrichtigt alle Clients im Raum, welcher Client den Raum verlassen hat.

##### Type:

- object

##### Properties:

Name | Type | Description
--- | --- | ---
`benutzer.username` | string | Der Username des Users, der den Raum verlassen hat
`benutzer.UUID` | string | Die UUID des Users, der den Raum verlassen hat

Source:
  - ServerV0_01.js, line 395

#### verbunden

"verbunden" wird abgesendet sobald eine Verbindung hergestellt wurde.

Source:
  - ServerV0_01.js, line 189

#### zeigeBenutzerImRaum

Sendet eine Liste mit Benutzern eines Raumes an den Client zurueck.

##### Type:

- Array.<Object>

##### Properties:

Name | Type | Description
--- | --- | ---
`benutzerInRaum[]['username'` | string |
`benutzerInRaum[]['UUID'` | * |

Source:
  - ServerV0_01.js, line 443