Squad Connect is a video conferencing application developed in Go and JavaScript. It allows users to participate in video calls with multiple peers, handle audio and video streams, and supports basic controls for muting/unmuting and stopping/starting video. The application uses WebRTC for peer-to-peer communication and a signaling server to manage connections and media streaming.
- Real-time Video Conferencing: Participate in video calls with multiple users.
- Audio and Video Controls: Mute/unmute audio and start/stop video streams.
- Multi-Peer Connections: Handle multiple peer connections in a single room.
- User Interface: Basic UI for video display and control buttons.
The application consists of the following components:
-
Web Client:
- Implemented in JavaScript.
- Handles user interface, WebRTC peer connections, and signaling.
-
Signaling Server:
- Implemented in Go.
- Manages WebSocket connections for signaling.
- Handles room creation and participant management.
-
WebRTC Peer Connection:
- Manages direct peer-to-peer communication.
- Handles audio and video streams.
- Go (1.16+)
- Node.js (for client-side development)
- Web browser with WebRTC support
-
Clone the Repository:
git clone https://github.com/karan9123/squad-connect.git cd squad-connect
-
Set Up the Server:
Navigate to the server directory and build the Go server:
cd server go build -o server
Start the server:
./server
-
Set Up the Client:
Navigate to the client directory and install dependencies:
cd client npm install
Start the client:
npm start
Open the client in your web browser at
http://localhost:3000
.
-
Start the Server: Ensure the Go server is running.
-
Start the Client: Run the client application and open it in multiple browser tabs or different browsers.
-
Join a Room: Use the client interface to connect to a room and start video conferencing.
client/
: Contains the client-side code and assets.server/
: Contains the Go code for the signaling server.
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.
This project is licensed under the MIT License. See the LICENSE file for details.
- WebRTC for real-time communication.
- Gorilla WebSocket for WebSocket handling in Go.
- pion/webrtc for WebRTC support in Go.