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'.
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.
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
.
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.