Portable command-line chat application
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
README.md
gobol.go
overview.png
server.go
shell.go

README.md

gobol (گوبول)

A simple console based, cross-platform chat application. gobol is a compound of Go (the language) and bol/(بول) - the Urdu word for "talk", pronounced 'bole'.

Installation

You need to have Go installed and properly set up to build from source. Type:

>> go get github.com/hazrmard/gobol

And the executable should appear in your workspace's bin directory. You can then add it to your PATH for convenience.

Use

Start the application by typing:

>> gobol.exe -u "AlphanumericUsername" -p PORT_NUMBER

You can send messages to all added users by typing the message and hitting enter.

gobol has a built-in command interface. All commands are preceded by \\.

To add a user:

\\ add USERNAME@HOST:PORT

Where HOST is IP (IPv4 or IPv6) address of the target user, and PORT is the port number their instance of gobol is listening on. Multiple users can be added and any messages typed will be sent to all added users. The user for any incoming message is automatically added to chat participants. So if you, A, add B and send a message, B will automatically add you to their list.

Similarly, to remove a user:

\\ remove USERNAME

Note, this does not prevent the user from sending you messages. It only prevents your messages from being transmitted to the user.

To block a user, type any one of:

\\ block user USERNAME
\\ block ip IP_ADDRESS
\\ block port PORT_NUMBER

To unblock, replace block with unblock. Blocked users cannot send you messages. Nor can you message a blocked user (except for targeted messages). A blocked user does not know if it's blocked.

To send a targeted message:

@USERNAME @OTHERUSERNAME Hey, this is a targeted message.

Targeted messages are only seen by the users they are addressed to. The messages appear with the @USERNAME part so recipients know it is a targeted message.

To get a list of all users added to chat session:

\\ list

To quit, press Ctrl+Q.

Under the hood

gobol control flow

BTW

gobol is my first Go project. I started working on it midway through A Tour of Go. I find that having an idea to work on, instead of ploughing through "Hello World" examples, provides motivation to further learn a language. Especially if you are familiar with other languages.