55 lines
		
	
	
		
			991 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			991 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
 |