A simple multithreded chat server in haskell
Go to file
Abhinav Sarkar 5a826db986 Adds comments. 2015-09-10 22:18:49 +05:30
app Some refactoring. 2015-09-10 02:57:54 +05:30
src/Link Adds comments. 2015-09-10 22:18:49 +05:30
test Adds types and a basic server. 2015-09-09 00:23:47 +05:30
.gitignore Adds types and a basic server. 2015-09-09 00:23:47 +05:30
LICENSE Update LICENSE 2015-09-10 15:58:52 +05:30
README.md Adds a readme. 2015-09-10 19:15:02 +05:30
Setup.hs Adds types and a basic server. 2015-09-09 00:23:47 +05:30
link.cabal Update link.cabal 2015-09-10 16:00:21 +05:30
stack.yaml Adds types and a basic server. 2015-09-09 00:23:47 +05:30

README.md

A simple mutli-threaded chat server written in Haskell with support for user-to-user private messaging and channels which users can join and chat in.

Run server:

$ link <port>

Command to the server over TCP:

$ telnet <host> <port>

Commands sent to the server:

  • LOGIN <username> Login with the username
  • QUIT Quit the server
  • MSG <username> <message> Send a private message to a user
  • JOIN <channel> Join a channel
  • LEAVE <channel> Leave a channel
  • TELL <channel> <message> Send a message to a channel
  • NAMES <channel> Get names of all users in a channel
  • PONG Reply to a ping from the server

Messages from the server:

  • LOGGEDIN <username> Confirmation of a login
  • NAMEINUSE <username> Username is already taken
  • MSG <username> <message> A private message from a user
  • NOSUCHUSER <username> You tried to send a message to a non-existent user
  • JOINED <channel> <username> A user joined the channel you have joined
  • LEFT <channel> <username> A user left the channel you have joined
  • NAMES <channel> <username> <username> ... Names of all users in a channel
  • TELL <channel> <username> <message> A message from a channel you have joined
  • PING A ping from the server. Must be replied with a PONG command or else the server will disconnect you.