module
0.0.0-20240201142909-211e4809cb6a
Repository: https://github.com/joaovds/chat.git
Documentation: pkg.go.dev
# README
Gotter Chat
💬 Application for exchanging messages in real time 📱
Project Overview
This project is a backend implementation in Go for a real-time chat system using WebSocket. The primary goal is to create a scalable and efficient server that facilitates communication between multiple clients in real-time.
Features
- Real-time Communication: Utilizing WebSocket for bidirectional communication between the server and clients, enabling instant message updates.
- Scalability: Designed to handle a large number of concurrent connections efficiently, ensuring smooth communication even with a high volume of users.
- User Authentication: Implement a secure authentication mechanism to validate users and manage access to chat features.
- Message Persistence: Optionally, store chat messages in a database to provide message history and continuity across user sessions.
- Error Handling: Implement robust error handling to gracefully manage unexpected scenarios, ensuring the stability of the chat server.
- Logging: Utilize logging to keep track of important events and errors for monitoring and debugging purposes.
Getting Started
Prerequisites
- Go installed on your machine.
Installation
-
Clone the repository:
git clone https://github.com/joaovds/gotterChat-backend
-
Navigate to the project directory:
cd gotterChat-backend
-
Copy enviroments variables:
cp .env.example .env
-
Install dependencies:
go mod tidy
-
Run the server:
go run cmd/chat/main.go
Configuration
- Modify the
.env
file to customize the server settings, such as port, database connection details, and authentication configurations.
Usage
- Connect to the WebSocket server using the appropriate client library.
- Implement user authentication based on the server's authentication mechanism.
- Establish a WebSocket connection and start sending and receiving messages in real-time.
Contributing
Contributions are welcome! Feel free to open issues for bug reports or feature requests. If you'd like to contribute, please fork the repository and submit a pull request.
License
This project is licensed under the MIT License.