mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2026-01-06 07:50:22 +01:00
@@ -1,14 +1,14 @@
|
||||
# A WebSocket signaling server/client for WebRTC.
|
||||
|
||||
This demo is devided in 4 parts:
|
||||
This demo divided into 4 parts:
|
||||
|
||||
- The `server` folder contains the signaling server implementation written in GDScript (so it can be run by a game server running Godot)
|
||||
- The `server_node` folder contains the signaling server implementation written in Node.js (if you don't plan to run a game server but only match-making).
|
||||
- The `client` part contains the client implementation in GDScript.
|
||||
- Itself divided into raw protocol and `WebRTCMultiplayer` handling.
|
||||
- The `server_node` folder contains the signaling server implementation written in Node.js (in case you dont want to run a godot game server).
|
||||
- The `client` folder contains the client implementation in GDScript.
|
||||
- It handles both the protocol and `WebRTCMultiplayer` separately.
|
||||
- The `demo` contains a small app that uses it.
|
||||
|
||||
**NOTE**: You must extract the [latest version](https://github.com/godotengine/webrtc-native/releases) of the WebRTC GDNative plugin in the project folder to run from desktop.
|
||||
**NOTE**: You must extract the [latest version](https://github.com/godotengine/webrtc-native/releases) of the WebRTC GDNative plugin in the project folder to run on a desktop.
|
||||
|
||||
Language: GDScript
|
||||
|
||||
@@ -18,18 +18,18 @@ Check out this demo on the asset library: https://godotengine.org/asset-library/
|
||||
|
||||
## Protocol
|
||||
|
||||
The protocol is text based, and composed by a command and possibly multiple payload arguments, each separated by a new line.
|
||||
The protocol is text based, which is composed of a command and possibly multiple payload arguments, each separated by a new line.
|
||||
|
||||
Messages without payload must still end with a newline and are the following:
|
||||
|
||||
- `J: ` (or `J: <ROOM>`), must be sent by client immediately after connection to get a lobby assigned or join a known one.
|
||||
This messages is also sent by server back to the client to notify assigned lobby, or simply a successful join.
|
||||
- `I: <ID>`, sent by server to identify the client when it joins a room.
|
||||
- `N: <ID>`, sent by server to notify new peers in the same lobby.
|
||||
- `D: <ID>`, sent by server to notify when a peer in the same lobby disconnects.
|
||||
- `S: `, sent by client to seal the lobby (only the client that created it is allowed to seal a lobby).
|
||||
- `J: ` (or `J: <ROOM>`), must be sent by the client immediately after connecting to get a lobby assigned or join a known one.
|
||||
These messages are from the server back to the client to notify the client of the assigned lobby, or simply of a successful join.
|
||||
- `I: <ID>`, sent by the server to identify the client when it joins a room.
|
||||
- `N: <ID>`, sent by the server to notify new peers in the same lobby.
|
||||
- `D: <ID>`, sent by the server to notify when a peer in the same lobby disconnects.
|
||||
- `S: `, sent by a client to seal the lobby (only the client that created it is allowed to seal a lobby).
|
||||
|
||||
When a lobby is sealed, no new client will be able to join, and the lobby will be destroyed (and clients disconnected) after 10 seconds.
|
||||
When a lobby is sealed, new clients will be unable to join, and the lobby will be destroyed (and clients disconnected) after 10 seconds.
|
||||
|
||||
Messages with payload (used to transfer WebRTC parameters) are:
|
||||
|
||||
@@ -37,7 +37,7 @@ Messages with payload (used to transfer WebRTC parameters) are:
|
||||
- `A: <ID>`, used to send an answer.
|
||||
- `C: <ID>`, used to send a candidate.
|
||||
|
||||
When sending the parameter, a client will set `<ID>` as the destination peer, the server will replace it with the id of the sending peer, and rely it to the proper destination.
|
||||
When sending the parameter, a client will set `<ID>` as the destination peer, the server will replace it with the id of the sending peer, then relay it to the proper destination.
|
||||
|
||||
## Screenshots
|
||||
|
||||
|
||||
Reference in New Issue
Block a user