3cham / hackathon-chatbot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement a chat bot which clients could register & broadcast message to others

The used communication protocol is HTTP

Server & Client run inside a docker container

Server:

  • The central point, which clients could register & send message to

  • /api/register -> POST data = { "clientname": "" } The information is saved in a file

  • /api/send_message -> POST data { "clientname": "", "message": "" }

  • /api/get_messages?from={STARTTIME} -> [ { "client-name": "", "message": "", "timestamp": "" }, { "client-name": "", "message": "", "timestamp": "" }
    ]

JSON Parsing:

  • key name is case insensitive
  • JSON structure could be different, still be parsed if the keys are correct

Client:

  • When the client is started, the IP address of the server must be provided beforehand Call /api/register to server address to register itself with server

  • In an underground go routine, the client calls /api/receive_message every 1s to receive new messages

  • otherwise, client wait for input form Stdin, if Enter is pushed, it sends the last sentence to server with /api/send_message

Build & Deploy server

# Build docker container
docker build . -t hackathon-chatserver:latest

# start the server 
docker run -d -p 8080:5000 hackathon-chatserver:latest

Start client against deployed server

#build the client
go build -o cli

./cli -type client -name YourName -address http://asprd02.ov.otto.de:8080

About


Languages

Language:Go 99.0%Language:Dockerfile 1.0%