This is a chatroom based libevent.
- Users with account, password, nickname.
- Rooms with Admin, Blacklist, password and broadcast messages.
- Offline messags would be sent to the receiver once the user gets online.
- Database write to the disk every 10 seconds by default.
- Dual-verified ssl.(All clients using the same .crt and .key)
- Based on libevent.
sudo apt install openssl libevent
mkdir build
cd build
cmake ..
make
./src/applicationprotocol/
The Costomed Application Protocol.
./srr/buffer/
A buffer than conver bytes into messages of the Customed Application Protocol.
./src/client/
A client interacts with commands.
./src/common/
Logging's implement and Datastructure's defination.
./src/converter/
A converter connects the Application Layer and the libevent Layer, where the offline messages will be stored. The Converter also maintains the mapping of TCP and APP.
./src/database/
A database that is called by the Application Layer. Save to the save file every 10 seconds.
./src/server/
A server based on libevent with Dual-verified ssl support.
./src/ssl/
The certificates and key of the client, server and CA. "Self-Signed"
./src/test/
Some test uses the google-test.
Layer | Spec |
---|---|
APP | a Customed Application Protocol |
SSL | bufferevent_ssl |
TCP | libevent |
The diagrams in the design file are out of date.