package main import ( "bytes" "html/template" "net/http" ) var geoJSONTmpl = template.Must(template.New("geojson").Parse( `{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [{{.X}}, {{.Z}}] }, "properties": { "name": {{.Name || html }} } }`)) type player struct { X float64 Y float64 Z float64 Name string } type players struct { fifo string wsf *websocketForwarder pls []*player } func newPlayers(fifo string, wsf *websocketForwarder) *players { return &players{fifo: fifo, wsf: wsf} } func (p *player) MarshalJSON() ([]byte, error) { var buf bytes.Buffer if err := geoJSONTmpl.Execute(&buf, p); err != nil { return nil, err } return buf.Bytes(), nil } func (ps *players) run() { for { // TODO: Implement me! } } func (ps *players) ServeHTTP(rw http.ResponseWriter, r *http.Request) { // TODO: Implement me! }