55 lines
990 B
Markdown
55 lines
990 B
Markdown
# chat.go
|
|
|
|
Rudimentary go chat server as a fun project.
|
|
|
|
# Install
|
|
|
|
```bash
|
|
git clone https://git.coolaj86.com/coolaj86/chat.go.git
|
|
|
|
go get gopkg.in/yaml.v2
|
|
go get github.com/emicklei/go-restful
|
|
```
|
|
|
|
Note: I also copied some code directly from
|
|
<https://github.com/polvi/sni/blob/master/sni.go>
|
|
|
|
# Usage
|
|
|
|
**Start the server**
|
|
|
|
```bash
|
|
go run -race chatserver.go -conf ./config.yml
|
|
```
|
|
|
|
See sample config file at `config.sample.yml`.
|
|
|
|
**Connect clients**
|
|
|
|
You can connect multiple clients.
|
|
|
|
```bash
|
|
telnet localhost 4080
|
|
```
|
|
|
|
You can also use HTTP. The API docs and examples can be seen at <http://localhost:4080>
|
|
|
|
```
|
|
curl http://localhost:4080
|
|
```
|
|
|
|
|
|
Implemented
|
|
-----
|
|
|
|
* [x] Awesome telnet server (would
|
|
* [x] HTTP API (no UI for the sake of time)
|
|
* [x] Multiplex the same port (because I wanted to learn)
|
|
* [x] E-mail "magic link" authentication (minus the link since it's localhost)
|
|
|
|
Not Implemented
|
|
----
|
|
|
|
* [ ] Write to log file (just `go run ./chatserver.go > /path/to/log`
|
|
* [ ] Rooms
|