Commit graph

106 commits

Author SHA1 Message Date
David Négrier 4d1c3517ec When sharing user position, only position is sent now! 2020-05-15 23:47:00 +02:00
David Négrier cdfa9acf01 JoinRoom now ONLY sends the roomId. 2020-05-15 23:24:04 +02:00
David Négrier b80e3e07d8 Sending player details (name + character selected) on connection 2020-05-15 22:49:50 +02:00
David Négrier 5a3668a12e Refactoring messages
Socket.io can stringify JSON messages itself, so there is no need to pass a string to "emit". You can pass a serializable object!

This commit removes all the useless toJson() methods, JSON.serialize and JSON.parse!

Woot!
2020-05-15 22:04:49 +02:00
David Négrier 4de552437d Completely getting rid of "userid"
Previously, userid was generated by the "/login" route and passed along.
This commit completely removes the uuid "userid" (and disables the LoginController too and any Jwt check).

"userid" is replaced by the "socket id" of the connection.
So a user is now identified using a socket id, which is unique for a given connection.
2020-05-14 23:20:43 +02:00
David Négrier 76b43245c5
Merge pull request #113 from thecodingmachine/display_circle_on_startup
Displaying circle on join
2020-05-14 22:02:41 +02:00
gparant 787e1c463c Media webrtcA
- Update peerConnexion manage
 - Add muted microphone logo
 - Add icon user
 - Sound when user enter in room webrtc
2020-05-14 20:39:30 +02:00
David Négrier 4cca1c1e58 Displaying circle on join
So far, someone joining a map would not see the circles of groups already formed until someone moves in the group (because the "circle_moved_or_updated" event was not fired when someone arrives)

This commit fixes this behaviour. Someone entering a room will receive an event for each and every group currently formed.
2020-05-13 23:11:10 +02:00
gparant ec297e3912 Auto-reconnect 2020-05-13 20:22:42 +02:00
David Négrier 59ee78275e Removing limitation to allow up to 4 players in a group 2020-05-13 09:39:48 +02:00
David Négrier 256fa51e24 Catching errors in socket callbacks
Catching errors in socket callbacks to avoid having the server crashing when an error occurs.
2020-05-12 11:49:55 +02:00
gparant e35c188854 Fix update world back end and deleting group in front end 2020-05-11 13:17:02 +02:00
gparant f4af824cf9 Fix error mapping refresh in back & the end of this feature development 2020-05-10 23:49:08 +02:00
gparant 8b9c36e3be Refactor leave and join room 2020-05-10 19:54:41 +02:00
gparant 8a91190d8c Change to update world by scene and room id 2020-05-10 19:45:17 +02:00
gparant 5f11b065e1 Permit to dissociate data by room
- Update share room id.
 - Join room when a scene is loaded.
 - Add a room in constant variable.
2020-05-10 13:58:32 +02:00
gparant 6dc309db34 Fix manage webrtc room id 2020-05-08 21:17:52 +02:00
David Négrier c59d693f6e
Merge pull request #83 from thecodingmachine/cleanup_rename_frame
Cleanup: renaming "frame" to "character"
2020-05-08 16:21:16 +02:00
David Négrier e4824fe34d
Merge pull request #81 from thecodingmachine/display_groups
Adding the display of a circle around the group
2020-05-08 16:20:56 +02:00
David Négrier 492196b333 Cleanup: renaming "frame" to "character"
The "frame" variable actually contains a string pointing to the character selected.
It has nothing to do with a frame which is usually a particular image in an animation.

I'm renaming the variable accross the application to avoid confusion.
2020-05-08 15:18:22 +02:00
gparant 802d710006 Fix lint tsc 2020-05-08 11:58:09 +02:00
gparant 41f5b5a1f6 Fix shares information to enter into Webrtc room.
- Refactor share position in world class.
- Update selects a client to send information about connecting WebRtc room.
2020-05-08 11:54:47 +02:00
gparant 16cf33755c Fix webrtc back
- Add refuse to join if webrtc room have 4 players.
2020-05-08 11:16:49 +02:00
David Négrier 02e6b50b16 Adding the display of a circle around the group
This PR adds the display of a circle around groups. This is useful to view where you need to go to speak to someone but also to debug.

Note: implementation is suboptimal, relying on a "graphics" object that is known to be slow. In the future, we need to use a circle as a sprite instead.
2020-05-08 00:35:36 +02:00
gparant 5a6415607d Send event and play animation with user frame 2020-05-06 01:50:01 +02:00
gparant b65e37c468 Name of map users
- Add name on user
 - Delete NonPlayer class not used
2020-05-03 22:24:14 +02:00
David Négrier 9c32c930a0 Merge 2020-05-03 17:47:54 +02:00
David Négrier 3b27f8b000 Making the group radius distinct from the minimum distance to connect 2 players
Also, changed default settings from 160px for Group Radius to 120px
(minimum distance to connect 2 players remains 160px)
2020-05-03 16:57:17 +02:00
gparant c48073b908 Fix update callback 2020-05-03 16:30:22 +02:00
gparant 372f938bbb Connect and Disconnect event. 2020-05-03 16:28:18 +02:00
gparant fdb40ec3e2 Fix webrtc multi 2020-05-02 20:46:02 +02:00
gparant c7f8f92e85 Fix webrtc 2020-05-02 00:31:44 +02:00
gparant e06b20fe96 Update video style and start peer connexion 2020-05-01 21:15:00 +02:00
gparant 2bfa57b0ba Merge world and webrtc conexion 2020-04-29 01:40:32 +02:00
gparant 881bb04eb0 Implement Distance Merge Request 2020-04-27 00:44:25 +02:00
gparant c907048c12 Merge branch 'feature/back-players-proximity' into webrtc 2020-04-26 23:34:35 +02:00
gparant 9730df2295 Merge branch 'master' into feature/back-players-proximity
# Conflicts:
#	back/src/Model/Websocket/MessageUserPosition.ts
2020-04-26 23:31:40 +02:00
gparant d396ad2f41 Fix CI CD 2020-04-26 22:35:16 +02:00
gparant d7d7be9ed0 Web visio, add and remove video element 2020-04-26 19:12:01 +02:00
gparant 89db8558f6 Add multi SimplePear connection 2020-04-25 17:14:05 +02:00
gparant c28108f6c9 Use WebRtc with SimplePeer 2020-04-25 16:05:33 +02:00
gparant a5b5072de1 Fix webrtc 2020-04-20 01:10:47 +02:00
gparant 5b62ac39fb Create webrtc connexion between two player 2020-04-19 19:32:38 +02:00
gparant d257b2b944 Multi players on the map
- Fix share user position
 - Fix initialise map
 - Create function to add user on the map with back end data
2020-04-10 12:54:05 +02:00
gparant 77780bd27b Change comment with new message strategy 2020-04-07 21:03:33 +02:00
David MAECHLER fbfc208129 BIG WIP of refactoring my work in TS 2020-04-07 10:08:04 +02:00
gparant b4f77ba51a Refactor to create interface rooms.
The ExtRooms permit to refresh position of all users in the map and create data to share.
2020-04-05 15:51:47 +02:00
gparant 5bfedb04fd Merge branch 'master' into Share-players-position-using-Socket.IO
# Conflicts:
#	back/src/Controller/IoSocketController.ts
2020-04-04 22:46:42 +02:00
David Négrier d064aca525
Fixing typo in comment 2020-04-04 22:35:20 +02:00
gparant fbcb48f9ad Share players position using Socket.IO
- I stocked information user (id, room and position) in socket client.
 - I created function to send all information every few 10 milliseconds.

Note : when the front will be available, we must check the performance of back server.
2020-04-04 19:25:08 +02:00
gparant f04d1342b5 Refactor error message 2020-04-04 17:56:43 +02:00
gparant 53e1600e67 Add authenticate
- Create new controller authenticate with login root..
 - Update and manage error message socket io.
 - Create enum for environment variables
2020-04-04 17:22:02 +02:00
gparant e8da727cae Refactor and fix error hydration message socket io
- Position message send will be on format :
message :
                    userId : user identification
                    roomId: room identification
                    position: position of user in map
                        x: user x position on map
                        y: user y position on map
 - Create Point object and interface to have position x and y of user in map.
2020-04-04 16:25:03 +02:00
gparant ba47d8b1d4 Setup web-socket connection
- Add authentification socket.io with jwt token
2020-04-04 14:05:18 +02:00
gparant 4e1115725b Add io socket message to share user position.
- Add message 'user-position' to share position in a room.
 - Change JoinRoomMessage to MessageUserPosition to have all data to share position and user information
 - Fix error alias to build
2020-04-04 12:42:02 +02:00
gparant ba335aa33d Create backend
- NodeJs
 - Express
 - Socket.io
 - Eslint
 - TypeScript
2020-04-04 04:08:12 +02:00