
Create the server side for the Geo Call app by setting up a dedicated backend folder, initializing a node project with npm init, and preparing index.js for the server.
Define a location error state in a react login page and disable the login button when the username is invalid or geolocation access fails, using useState and useEffect.
Create a functional messages container in the chat box, receive the socket ID as a prop, and apply flex-grow to occupy available space for future messages.
Use useState to track the message and bind it to the input; on enter, send via socket.io after validating length, update the local store, and reset the input.
Close chat boxes by wiring the nav bar's close button to dispatch removeChatBox with the chat's socket id using useDispatch from the messenger slice.
Display dummy video rooms by mapping mock data to room join buttons. Pass room id, creator username, and participant count, and render the creator's initial for each room.
The server creates a new video room with an id and participants and broadcasts updates to all connected users, while the client updates the room list on video rooms event.
Set and display real video rooms from the server by wiring a video rooms list handler to the socket and dispatching set rooms to the store.
Render the real rooms list by converting video rooms from the store into an array and extracting room id, creator username, and participant count.
Prepare the peer connection in the web rtc handler, listen for calls, answer with the local stream, and update the remote stream in the store; enable initiating calls via socket.io.
Set up a server-side video room join flow with socket.io, validating rooms, updating participants, emitting a video room init to the joiner, and broadcasting updated rooms to logged users.
Wire a socket event for video room init, import the call handler from the WebRTC module, and establish a peer-to-peer connection to exchange remote streams between two users.
Display the remote stream by retrieving it from the store and rendering it in a video element, testing with muted, and plan to add a disconnect button to leave rooms.
Implement leave room functionality on the initiator side by emitting a leave video room event with the room id, disconnecting the peer, and updating the ui to reflect exit.
Test leaving room in a React and WebRTC video chat app, resolve map loading by restarting the app, and understand Redux store updates and server-side room cleanup when participants leave.
Add a server-side video room live handler that removes the disconnected user, checks the room exists, notifies the remaining participant to close their peer connection, and broadcasts video room lists.
Close peer connections on both sides by handling the video call disconnect event, cleaning all WebRTC peer connections and remote streams for a clean rejoin.
Add microphone and camera toggle buttons in video room of the React WebRTC video chat app, wiring icons and Redux actions to mute and turn the camera on or off.
Explore how WebRTC enables peer-to-peer communication to exchange video, audio, and data without plugins. Identify the signaling, stun, and turn servers that establish direct connections between two users.
Explore how a signaling server enables a direct WebRTC connection by exchanging network details, codec information, and browser data, with WebSocket or HTTP options.
Signaling coordinates peers and STUN reveals their internet details, while TURN relays traffic when direct connections fail, not inspecting data, due to traffic costs.
Learn how to exchange SDP and network details via signaling, use ICE candidates from a stun server, and fallback to a turn server to establish direct WebRTC connections.
Establish a direct peer connection by exchanging a WebRTC offer, SDP, and ICE candidates via the signaling server, with STUN and optional TURN, enabling video, audio, and data channels.
Learn technologies like React, WebRTC (PeerJS) , SocketIO and Google Maps API by creating amazing project ,,GeoCall''. In this practical course we will jump straight to the code and explain all necessary things through the course. We will go through all of the steps to create application with possibility of sharing our location on the map with other users. We will create own PeerJS implementation to show how you can develop WebRTC application with direct calls. After this course you will be able to create own application with Google Maps and calling functionality. You will know the process how to establish connection between peers.
In our application we will use:
WebRTC (PeerJS)
JavaScript
SocketIO
Express.js
Node.js
React
Google Maps API
We will create necessary UI with React and Google Maps and we will proceed with all of the logic related with SocketIO and WebRTC.
App creating process:
Prepare environment
Build frontend of our application with React
Connect our Application with Google Maps
Create chat functionality with SocketIO
Create functionality to share with other users our location
Connect own PeerJS Server
Implement direct calls with PeerJS
I hope you will enjoy the course and after finishing it you will feel confident to create own application with Google Maps and chat functionality with direct calls.
Also you can find theory module about WebRTC if you would like to know more details what is going behind of implementation of PeerJS