Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ashad001/rapidchat
A react + golang chat application
https://github.com/ashad001/rapidchat
backend chat-application golang react real-time-chat rooms websocket
Last synced: 5 days ago
JSON representation
A react + golang chat application
- Host: GitHub
- URL: https://github.com/ashad001/rapidchat
- Owner: Ashad001
- Created: 2024-03-21T03:42:28.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-03T07:58:26.000Z (6 months ago)
- Last Synced: 2024-06-03T09:52:27.413Z (6 months ago)
- Topics: backend, chat-application, golang, react, real-time-chat, rooms, websocket
- Language: JavaScript
- Homepage:
- Size: 3.66 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RapidChat
RapidChat is a real-time chat application. It allows users to join chat rooms, send messages, and interact with other users in real-time. The application is built using React for the frontend and Go for the backend.
## Networking Implementation
RapidChat leverages WebSocket technology for real-time communication between the client and server. WebSocket is a communication protocol that provides **full-duplex** communication channels over a single TCP connection. It enables interactive communication between a client and a server, allowing messages to be sent and received in real-time.
### Frontend
The frontend of RapidChat is built using React. The frontend communicates with the backend server using WebSocket to send and receive messages. The `ChatSocket.js` file handles WebSocket communication with the server, allowing users to join chat rooms, send messages, and receive updates in real-time.
### Backend
The backend of RapidChat is built using Go, a statically typed, compiled programming language. The backend server implements WebSocket functionality using the `github.com/gorilla/websocket` package. It manages WebSocket connections, maintains chat rooms, and facilitates communication between clients.
- **WebSocket Server**: The backend server establishes a WebSocket server using the `github.com/gorilla/websocket` package. It listens for incoming WebSocket connections from clients and manages these connections using a connection pool.
- **Connection Pool**: The backend maintains a connection pool to manage WebSocket connections from multiple clients. When a client connects to the server, its WebSocket connection is added to the connection pool. The server broadcasts messages to all clients in the pool, allowing real-time communication between users.
- **Message Handling**: The backend server handles incoming messages from clients and broadcasts them to other clients in the same chat room. It also sends notifications to clients when users join or leave the chat room.
## Getting Started
To run the RapidChat application locally, follow these steps:
1. Clone the repository.
2. Navigate to the `frontend` directory and run `npm install` to install dependencies.
3. Run `npm start` to start the frontend server.
4. Navigate to the `go-backend` directory and run `go run main.go` to start the backend server.## Technologies Used
- **Frontend**: React, JavaScript, WebSocket
- **Backend**: Go, WebSocket
- **Package Manager**: npm/yarn (for frontend), Go modules (for backend)## Example
![Example](./reports/example.gif)
## Acknowledgements
- [Tutorial: Building a Real-Time Chat App with React and Go](https://tutorialedge.net/projects/chat-system-in-go-and-react/)
- [ereid7: go-react-Chat]()