workshop script

thumb
km0 1 year ago
parent b0401930fb
commit 750de203a2

@ -46,4 +46,87 @@ XPUB Studio, 4th floor etc
- 16:00 - Upload online
- 16:30 - Try out and presentation
## Intro
<!-- Slides are actually on a destination client -->
<!-- Put some controls to regulate size and movement maybe ? to play in real time -->
DRW is a small app for multiplayer drawing in real time.
To draw connect to --> [https://hub.xpub.nl/soupboat/drw](https://hub.xpub.nl/soupboat/drw)
It works with multiple sources, but also multiple destinations.
The same drawings can be displayed on different places! _(such as this page)_
Open [https://hub.xpub.nl/soupboat/drw/destination](https://hub.xpub.nl/soupboat/drw/destination) and send some drawings.
Try to navigate to [https://hub.xpub.nl/soupboat/drw/wander](https://hub.xpub.nl/soupboat/drw/wander) to see a different mode.
## How does it work
![ping pong is my passion](https://git.xpub.nl/kamo/drw/raw/branch/main/img/pingpong.jpg)
### Websockets
DRW is like ping pong!
Sources and destinations send each other small messages using a protocol called [websockets](https://javascript.info/websocket).
Once a websocket connection is open, they can communicate in both directions.
From the source to the destination and the other way around!
Websockets are great for applications that require continous data exchange, such as chat and games.
### DRW Architecture
Two types of entities:
- Clients
- Server
Every client is connected to the server, either as a source or as a destination.
Depending on their role, clients send different kinds of messages to the server.
The server manages the flow of websocket messages, taking care to deliver the right message to the right client.
### Message
In this app, a message is a simple text string.
It looks like
```
{"type": "test", "data": "this is my test message"}
```
Here the message has two properties: `type` with value _test_, and `data` with value _this is my test message_.
Using the [JSON](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON) format, the message contents can be accessed easily.
```
// Transform the string message into a Javascript object
let message = JSON.parse({"type": "test", "data": "this is my test message"})
// Access the contents of the message
console.log(message.type)
// test
console.log(message.data)
// this is my test message
```
(`console.log()` in Javascript is like `print()` in Python)
## Installation
Step to step process to install DRW on your machine.
Find the documentation on --> [Gitea](https://git.xpub.nl/kamo/drw#setup)
What do you need:
- A terminal
- [git](https://git-scm.com/downloads)
- [Node.js](https://nodejs.org/en/download/)
For later on
- A code editor (sublime, atom, vscode, etc)

Loading…
Cancel
Save