Terminal chat application
A simple chat application inside the terminal with Golang and Redis Pub/Sub.
How it works
How the data is stored:
- The chat data is stored as keys
- For each channel contents, the
channel:
is the prefix key, followed by the channel name. - For each message contents, the
message:
is the prefix key, followed by thechannel-name
and themessage-data
in json format.
- For each channel contents, the
How the data is accessed:
- Here is the sample code to access the channel's messages with Go Redis:
# Get the channel's messages
ctx := context.Background()
iter := redis.Client.Scan(ctx, 0, fmt.Sprintf("%s%s*", messagePrefix, m.channel), 0).Iterator()
var messages []string
for iter.Next(ctx) {
rawMsg := iter.Val()
rawMsg = strings.Replace(rawMsg, fmt
…