Start of a websocket server.

This commit is contained in:
Ian Gulliver
2016-03-10 16:17:47 -08:00
parent 62fce4fa70
commit 2d1b4919b3
4 changed files with 61 additions and 0 deletions

2
sinks/adsb-ws/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
# Binaries
adsb-ws

4
sinks/adsb-ws/Makefile Normal file
View File

@@ -0,0 +1,4 @@
all: adsb-ws
adsb-ws: *.go
go build

18
sinks/adsb-ws/main.go Normal file
View File

@@ -0,0 +1,18 @@
package main
import (
"flag"
"log"
"net/http"
)
var addr = flag.String("addr", ":8080", "http service address")
func main() {
flag.Parse()
http.HandleFunc("/stream", serveStream)
err := http.ListenAndServe(*addr, nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}

37
sinks/adsb-ws/stream.go Normal file
View File

@@ -0,0 +1,37 @@
package main
import (
"github.com/gorilla/websocket"
"log"
"net/http"
)
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
CheckOrigin: func(r *http.Request) bool {
return true
},
}
func readPump(ws *websocket.Conn) {
for {
msgtype, msg, err := ws.ReadMessage()
if err != nil {
if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway) {
log.Printf("error: %v", err)
}
break
}
log.Println(msgtype, msg)
}
}
func serveStream(w http.ResponseWriter, r *http.Request) {
ws, err := upgrader.Upgrade(w, r, nil)
if err != nil {
log.Println(err)
return
}
readPump(ws)
}