A CLI Chat Program Based on Apache Kafka
- JDK >= 1.7
- Maven
- Apache Kafka 0.8.2.2 (with
ZooKeeper
included)
-
Resolve maven dependency
$ mvn dependency:copy-dependencies
-
Build
jar
using mavenmvn
$ mvn package
-
Start
ZooKeeper
server on your machine$ bin/zookeeper-server-start.sh config/zookeeper.properties
-
Start
Kafka
server on your machine$ bin/kafka-server-start.sh config/server.properties
-
Run
ChatServer
from the generatedjar
intarget
folder$ java -cp target/dependency/*:target/kafka-chat-1.0.jar com.edmundophie.chat.ChatServer
-
Run
ChatClient
from the generatedjar
intarget
folder$ java -cp target/dependency/*:target/kafka-chat-1.0.jar com.edmundophie.chat.ChatClient
nick <nickname>
: login asnickname
. Leavenickname
empty to login as a random userjoin <channelname>
: join to a channel namedchannelname
leave <channelname>
: leave a channel namedchannelname
@<channelname> <message>
: sendmessage
to a channel namedchannelname
<message>
: send a message to all user joined channellogout
: logout from currentnickname
exit
: stop program
- All basic commands (nick, join, leave, etc)
- Invalid command (e.g.
@<channelname>
without message) - Send a message when no channel is joined
- Send a message to a channel that is not a member of
- Join a channel that already a member of
- Leave a channel that is not a member of
- Logout and relogin with the same nickname
- Login with existed nickname
- Multiclient chat
- Edmund Ophie 13512095
- Kevin 13512097