andrewriehm / chatserver Goto Github PK
View Code? Open in Web Editor NEWC++ chat server
C++ chat server
Figure out how to deploy this to an Amazon EC2 instance (or some equivalent).
Something like ChatManager::GetRoomName(string name) that returns the actual name if it exists, or "" if it doesn't.
Same thing for user names. And these functions should be able to deal with case differences gracefully.
If the client dies / DCs / ctrl-C's out, the user name never gets released.
Fix it!
Right now I'm just manually stripping off the \r\n. There needs to be more robust validation logic.
Right now they're just hanging out...
Should show roomName(#ofpeople).
Right now just shows roomName.
Right now I'm only reading into a fixed-size buffer. Need to read all available data (might be more than what fits in the buffer).
Need to finish implementing this.
In Server.cpp::main(), need to check and see if we're root, and if so, drop down.
Need to add mutex / locks around all sensitive stuff in ChatManager.
Make a word guessing game. The one giving hints is the SUPREME COMMANDER OMEGA. SCO gets to see the word at the beginning of a round, he can give hints. Everyone else tries to guess the word. First person to guess the word becomes the new SCO, and a new round begins.
Means you need to be able to tell when a client is dead, and clean up properly.
Need to make the main handle loop nonblocking, so the chat server can send stuff to the client without having to wait for the client to send something first...
Now it accepts any user name. Need to add a check once the DB backend exists.
Inconsistent right now. Need to fix that.
If no args are specified, should list all users on the server (perhaps showing what room they're in?)
If an arg is given, list all users in the room specified by 'arg'
Need to spawn new threads to handle clients, so they can more easily access the shared ChatManager object.
On the VM.
Figure out best way to implement unit tests for ClientHandler and ChatManager classes.
Also need to integrate the tests into the build system.
Needs to have methods for adding/removing a user, creating rooms, join/unjoin a user and a room, post new messages to rooms, send a message to a user, list who is in a room
Make sure AwesomeRoom and awesomeroom map to the same thing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.