A dynamically distributed telnet chat server. "Work In Progress"
- Kicks clients that does not specify a name within 9 seconds.
- Detects connection flooding.
- Limits every message to 100 characters. Avoiding a few more exploits.
- Private messaging to users in the same room.
- Authority levels. Allowing operators to kick users.
- Distributes rooms across servers.
- Strict and stable.
/help
- shows this message./quit
- disconnects from the server./rooms
- shows all the active rooms./enter <nickname>
- joins the server as nickname./create <room> <password>
- creates a new room with a password./join <room>
- joins the specified room./chat <message>
- broadcasts message to everyone in room./leave
- leaves the chatroom./login <password>
- be an operator of the room./me <action>
- broadcast an action./msg <nickname> <message>
- sends a private message to specified nickname./poke <nickname>
- poke another user in chatroom./kick <nickname>
- kicks the nickname off the chatroom./servers
- shows all active servers or schools.
$ telnet majidarif.com 9399
$ git clone git@github.com:majimboo/weebchat.git
$ cd weebchat
$ npm install
Starting the load balancer.
$ bin/lobby -h
Usage: lobby [options]
Options:
-h, --help output usage information
-V, --version output the version number
-c, --config [path] path to config
Starting a server.
$ bin/school -h
Usage: school [options]
Options:
-h, --help output usage information
-V, --version output the version number
-c, --config [path] path to config
$ telnet localhost 9399
<= Welcome to the Weeb chat server
<= Login Name?
=> arif
<= Welcome arif!
=> /create room secretpass
=> /join room
<= Entering room: room
<= * arif (** this is you)
<= end of list.
<= * new user joined room: majid
<= majid: hi there
=> /kick majid
<= Permission denied.
=> /login secretpass
<= Successfully authenticated.
=> /kick majid
<= * user has been kicked from chat: majid
=> /quit
<= * user has left chat: arif (** this is you)
<= BYE
Connection closed by foreign host.
/goto <nickname>
. Goes to the room where the user currently is./whois <nickname>
. Shows the user's information./announce <message>
. Broadcasts a message to users. Admin ONLY.- Discard commands like CTRL+C.
- Cross server or room communication.
- Do not allow chat with empty messages.
- Stricter arity checking.
- Refactor src/db.
- Better logging.
- More informative replies on commands.