tcpchat is a Go-based chat server that utilizes TCP connections to facilitate communication between users. It provides functionality for user registration, maintains a user IP map, allows the creation of groups, and efficiently routes messages to other clients.
- User Registration: Users can register themselves on the chat server.
- User IP Map: Maintains a mapping of users to their respective IP addresses.
- Group Creation: Users can create groups for specific discussions.
- Message Routing: Efficiently routes messages to appropriate clients based on their intended recipients.
Here's an overview of the overall design
Following diagram illustrates the actions to be performed upon receiving messages conforming to these specific formats, and also covers the database design
Here are the various channels to be used for communication across goroutines, and hence... users 😊
Here's a quick demo
Untitled.1.1.mp4
https://www.veed.io/view/e3befc40-1007-44aa-80ba-bc3c7b364df8?panel=share
Group Chat
Contributions are welcome! If you find any bugs or have suggestions for improvements, please feel free to open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.