Gregoire Parant
aeced0c648
create message to report
2020-10-12 11:22:41 +02:00
arp
032facb75f
lint fixes
2020-10-09 17:21:46 +02:00
arp
f550c5a775
merge from develop
2020-10-09 17:10:24 +02:00
arp
c5f8b43fec
more fixes
2020-10-09 17:01:34 +02:00
arp
5e54fc2c26
some fixes
2020-10-09 14:53:18 +02:00
arp
4af46b1b3f
simplified mapUrl parsing
2020-10-08 18:51:24 +02:00
David Négrier
f542b117a8
Refactoring connection to pass room info on connect
2020-10-06 18:11:42 +02:00
arp
0b78eb6277
temp
2020-10-06 15:37:00 +02:00
David Négrier
f06abfae4c
Migrating to uuid v4
2020-10-01 16:51:51 +02:00
David Négrier
e4872c6f9d
Fix CI
2020-10-01 15:55:23 +02:00
David Négrier
d3fa901691
Merge branch 'develop' of github.com:thecodingmachine/workadventure into feature/global-message
...
+ migrating to protobuf messages
# Conflicts:
# back/src/App.ts
# back/src/Controller/IoSocketController.ts
# back/yarn.lock
# front/src/Connection.ts
# front/src/Phaser/Game/GameScene.ts
# front/src/Phaser/Login/EnableCameraScene.ts
# front/src/WebRtc/SimplePeer.ts
2020-10-01 14:11:34 +02:00
David Négrier
a8bbe04cae
Adding logs to track overheating
2020-09-30 14:42:35 +02:00
David Négrier
a87cdc543b
Adding CPU tracking: if CPU > 80%, ignore position of moving players
2020-09-30 12:50:34 +02:00
David Négrier
d9c910cfca
Removing useless code
2020-09-30 12:16:39 +02:00
David Négrier
c7f5770968
Fix CI
2020-09-30 10:17:01 +02:00
David Négrier
5de2f61231
Adding back authentication to uws websocket
2020-09-30 10:12:40 +02:00
David Négrier
e9b538e43c
Fixing import
2020-09-29 17:30:38 +02:00
David Négrier
53c6c2bc30
Fixing benchmark
2020-09-29 17:24:16 +02:00
David Négrier
9f3577286d
Merge branch 'develop' of github.com:thecodingmachine/workadventure into uws
...
# Conflicts:
# back/src/Controller/AdminController.ts
# back/src/Controller/AuthenticateController.ts
# back/src/Controller/IoSocketController.ts
# back/src/Controller/MapController.ts
# benchmark/index.ts
# front/src/Connexion/RoomConnection.ts
2020-09-29 17:12:28 +02:00
David Négrier
432b4a0e85
Linting app
2020-09-29 16:12:17 +02:00
David Négrier
b485c9bf46
Switching WebRTC to protobuf + uws
2020-09-29 16:01:22 +02:00
David Négrier
a9b1313d39
Cleanup
2020-09-29 10:57:14 +02:00
David Négrier
2cea0e490b
Fixing disconnect call
2020-09-29 09:45:47 +02:00
David Négrier
6a4c0c8678
Migrating to uWS
2020-09-28 18:52:54 +02:00
arp
3f9659ef3c
improvments
2020-09-28 15:40:34 +02:00
arp
af4611ed29
rewrote the login workflow
2020-09-25 19:23:33 +02:00
David Négrier
dd4d5db54f
Fixing build
2020-09-25 15:42:55 +02:00
David Négrier
48469e3de3
Fixing linting
2020-09-25 15:42:05 +02:00
David Négrier
892d1555b8
Adding "dump" controller and fixing issue with groups in PositionNotifier by delegating the PositionNotifier.updatePosition call to groups themselves
2020-09-25 13:48:02 +02:00
David Négrier
953912b892
Fix style
2020-09-24 17:52:12 +02:00
David Négrier
ac80850335
Switching SetViewport to protobuf
2020-09-24 17:36:10 +02:00
David Négrier
24a6cd7f8e
Switched ITEM_EVENT to protobuf
2020-09-24 17:24:37 +02:00
David Négrier
cd083a2090
Merge branch 'develop' of github.com:thecodingmachine/workadventure into protobuf
...
# Conflicts:
# back/package.json
2020-09-24 16:22:16 +02:00
David Négrier
0c4c43f88c
Adding USER_LEFT message to protobuf
2020-09-24 16:11:47 +02:00
David Négrier
2dad601311
Adding JOIN_ROOM message in protobuf
2020-09-24 14:50:28 +02:00
David Négrier
72806b3ca0
Fixing messages copy
2020-09-24 11:54:00 +02:00
David Négrier
d7209d8864
Migrating messages locally into back and front
2020-09-24 11:16:08 +02:00
David Négrier
b4f971c501
Switched group position to protobuf
2020-09-24 10:05:16 +02:00
Gregoire Parant
4beeb62c6f
Fix CI
2020-09-23 18:28:12 +02:00
Gregoire Parant
bcb126a146
Merge branch 'develop' into feature/global-message
...
# Conflicts:
# back/src/App.ts
2020-09-23 17:26:00 +02:00
Gregoire Parant
0d2893ec75
Send at every player connected
2020-09-21 15:11:46 +02:00
David Négrier
76d3779438
Moved GroupUpdateMessage to protobuf
2020-09-21 11:24:03 +02:00
arp
a19f09bef2
improve the register workflow
2020-09-21 10:51:48 +02:00
Gregoire Parant
844bffa988
Create file controller to upload audio document
2020-09-20 19:01:21 +02:00
Gregoire Parant
45ad4bbb36
Send and play audio message
2020-09-20 17:12:27 +02:00
Gregoire Parant
4c7e458e52
create event and brodcast event in backend
2020-09-19 01:08:56 +02:00
David Négrier
57545a96a5
Removing binary call because missing typescript def
2020-09-18 18:18:39 +02:00
David Négrier
b148ca3708
Linting
2020-09-18 18:16:26 +02:00
David Négrier
df0636c513
Migrating user position messages to protobuf
2020-09-18 15:51:15 +02:00
arp
3a17795ad3
added basic token auth
2020-09-18 15:48:30 +02:00
David Négrier
e9ca8721a6
Migrating userId to "int32" to save some space and adding userMoves message in protobuf
2020-09-18 13:57:38 +02:00
arp
ed9552b62b
added a register route via token
2020-09-17 18:21:49 +02:00
David Négrier
4b55b54a07
Adding first protobuf message exchange
2020-09-17 17:14:47 +02:00
David Négrier
f6458a8335
Removing useless group callbacks at the World level
2020-09-16 16:13:47 +02:00
David Négrier
f5f9dcac04
Making groups part of zones
2020-09-16 16:06:43 +02:00
David Négrier
3a9196fb82
Merge
2020-09-16 11:41:03 +02:00
David Négrier
7e7b42ce19
Changing load test to run in circles
2020-09-16 09:31:44 +02:00
David Négrier
d24ec0bd75
Plugin PositionNotifier into the main application.
2020-09-15 16:21:41 +02:00
David Négrier
f8d462b0d7
Fixing "any" type
2020-09-15 10:10:35 +02:00
David Négrier
9b702c75e3
Adding batched messages + the notion of notifier / zones (not plugged in the system yet)
2020-09-15 10:06:11 +02:00
David Négrier
b37a8f63be
Moved benchmark to its own directory and added multicore testing + a README
2020-09-11 09:56:05 +02:00
Gregoire Parant
d4fe59d154
Create config file artillery websocket
2020-09-09 12:32:01 +02:00
David Négrier
df7b5cc2e3
Adding a "silent" notion (triggered in Jitsi meets)
2020-08-31 14:03:40 +02:00
David Négrier
fca93663b4
Merge branch 'develop' of github.com:thecodingmachine/workadventure into outline
2020-08-24 18:15:44 +02:00
David Négrier
2ae19b9f30
Fixing build
2020-08-20 22:34:50 +02:00
David Négrier
27ffb6b13d
Refactoring SimplePeer code: splitting Peer instantiation into 2 subclasses (VideoPeer and ScreenSharingPeer). This leads to way leaner code.
2020-08-20 16:56:10 +02:00
David Négrier
0119534283
First version of screen-sharing that works when a user is joining a group after screen sharing begun.
2020-08-20 00:05:00 +02:00
David Négrier
6c5772e849
Fixing typipng in back
2020-08-18 15:31:42 +02:00
Gregoire Parant
4b72958193
Fix peer connexion for two player with screen sharing
2020-08-17 23:56:46 +02:00
Gregoire Parant
a8f27e6084
Create event to start webrtc screen charing
2020-08-17 23:54:26 +02:00
Gregoire Parant
a4f42111d7
Update screen sharing feature
2020-08-17 23:47:17 +02:00
David Négrier
6b970adc6c
Merge branch 'develop' of github.com:thecodingmachine/workadventure into outline
...
# Conflicts:
# front/src/Phaser/Game/GameScene.ts
# front/src/Phaser/Player/Player.ts
# front/src/index.ts
# front/yarn.lock
2020-08-17 22:51:37 +02:00
David Négrier
84529d6e99
Propagating customized sprites all over the game
2020-07-28 17:45:55 +02:00
David Négrier
ee612f6585
Adding event support to items
2020-07-27 22:36:58 +02:00
David Négrier
d48d5b0285
Fix CS
2020-07-23 18:47:28 +02:00
David Négrier
2484e4f1df
Moving maps to their own container
2020-07-23 18:43:51 +02:00
David Négrier
82c57810a2
Removing host label from Prometheus because it is redundant
2020-06-29 23:01:52 +02:00
David Négrier
6412c56fcd
Adding finally clause to make sure Prometheus indicators are ok
2020-06-29 22:56:41 +02:00
David Négrier
981fa84aa7
Mitigating problem when there is a synchronization issue between World and sockets list.
2020-06-29 19:16:15 +02:00
David Négrier
9bdcc9da98
Deleting world when empty.
2020-06-29 19:14:54 +02:00
David Négrier
928e486de5
Fixing token management
2020-06-10 12:32:39 +02:00
David Négrier
a373626e24
Removing all "any" from back.
...
To do this, I used generic-type-guard package which generates both an interface AND a valid type guard from code.
With this, we are 100% sure that the messages we receive are validated at runtime!
The client cannot pass us an object that is invalid! \o/
2020-06-09 23:07:19 +02:00
David Négrier
ac0b7a7361
Turning let into const where applicable
2020-06-09 15:54:54 +02:00
David Négrier
68dfed5fba
Fixing Prometheus indicator
2020-06-09 13:53:33 +02:00
David Négrier
af6924a27c
Adding Prometheus metrics
...
This commit adds a '/metrics' endpoint in the API that can be exploited by Prometheus.
This endpoint returns:
- the number of connected sockets
- the number of users per room
- common NodeJS and system metrics
WARNING: this endpoint is public right now and should be protected
2020-06-09 11:49:23 +02:00
David Négrier
69cfac290d
Improving logs (adding date)
2020-06-09 09:30:12 +02:00
David Négrier
96c5d92c46
Fixing disconnection taking ~15 seconds
...
Most of the time, sending a disconnect event to one of the players is enough (the player will close the connection
which will be shut for the other player).
However! In the rare case where the WebRTC connection is not yet established, if we close the connection on one of the player,
the other player will try connecting until a timeout happens (during this time, the circle with the name is displayed for nothing).
So now, we send disconnection event to every body (not only the people in the group, but also to the person leaving the group)
2020-06-05 13:07:18 +02:00
David Négrier
66ec11176b
Tracking nb users connected and server load
...
When a user connects or disconnects on the server, we log this (along the current server load).
This is only temporary, in order to assess the number of users a server can safely handle before crashing.
2020-05-28 22:00:56 +02:00
David Négrier
cd586a9e0c
Renaming /maps to /start-map
...
Closes #90
2020-05-24 22:53:10 +02:00
David Négrier
2448fef53a
Adding a notion of instances per mapAdding a notion of instances to room
...
The URL signature becomes:
https://workadventu.re/_/[instance]/[path_to_map.json]
This allows us to create many instances of the same map (and therefore to create several different worlds for different people)
An exit on a map can target another "instance" by passing the "exitInstance" property.
2020-05-23 17:45:49 +02:00
Gregoire Parant
0c9cbca765
Use userId
generated by back end in all message
2020-05-23 15:04:25 +02:00
Gregoire Parant
ab32021fc0
Fix mediam stream manage and server back down
2020-05-23 14:00:36 +02:00
David Négrier
ab798b1c09
Changing the "Point" notion to add a notion of "moving" in addition to the notion of direction.
...
Also, refactoring JOIN_ROOM event to add complete position.
2020-05-22 23:04:45 +02:00
David Négrier
fb8d7b5d59
Removing dead code
2020-05-19 19:53:26 +02:00
David Négrier
125a4d11af
Refactored and optimized messages
...
Now, when a user moves, only his/her position is sent back to the other users. The position of all users is not sent each time.
The messages sent to the browser are now:
- the list of all users as a return to the join_room event (you can send responses to events in socket.io)
- a "join_room" event sent when a new user joins the room
- a "user_moved" event when a user moved
- a "user_left" event when a user left the room
The GameScene tracks all these events and reacts accordingly.
Also, I made a number of refactoring in the classes and removed the GameSceneInterface that was useless (it was implemented by the LogincScene for no reason at all)
2020-05-19 19:11:12 +02:00
David Négrier
e934015d87
Refactoring searchClientById
...
searchClientById was scanning through all open sockets to find the right one (which is inefficient if we have many).
Instead, I created a new Map that directly maps ids to sockets.
Furthermore, this solves a long-standing issue (when a socket is disconnected, we cannot find it anymore in the sockets list but it is still available in the disconnect callback from the map)
As a result, we should not have any remaining circles any more.
2020-05-18 18:33:04 +02:00
David Négrier
1bbd0866cb
Code cleaning
2020-05-16 16:07:57 +02:00
David Négrier
b20357c1ee
Removing the Message class and merging it with MessageUserPosition (since it is only ever used it in MessageUserPosition)
...
Taking advantage of the TypeScript Constructor Assignment too to reduce the amount of code!
2020-05-16 15:44:45 +02:00
David Négrier
3b6ace03fa
Getting rid of roomId in Message class (this is not needed since all messages sent are for the room we are currently in)
2020-05-16 00:19:27 +02:00
David Négrier
4d1c3517ec
When sharing user position, only position is sent now!
2020-05-15 23:47:00 +02:00