forked from MTSR/mapserver
websocket stub
This commit is contained in:
parent
9d411e470c
commit
d0e23bb114
1
go.mod
1
go.mod
@ -4,6 +4,7 @@ require (
|
||||
github.com/disintegration/imaging v1.5.0
|
||||
github.com/google/go-cmp v0.2.0 // indirect
|
||||
github.com/google/pprof v0.0.0-20190109223431-e84dfd68c163 // indirect
|
||||
github.com/gorilla/websocket v1.4.0
|
||||
github.com/mattn/go-sqlite3 v1.10.0
|
||||
github.com/mjibson/esc v0.1.0 // indirect
|
||||
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect
|
||||
|
2
go.sum
2
go.sum
@ -6,6 +6,8 @@ github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/pprof v0.0.0-20190109223431-e84dfd68c163 h1:beB+Da4k9B1zmgag78k3k1Bx4L/fdWr5FwNa0f8RxmY=
|
||||
github.com/google/pprof v0.0.0-20190109223431-e84dfd68c163/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||
github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o=
|
||||
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
|
@ -20,6 +20,7 @@ func Serve(ctx *app.App) {
|
||||
mux.Handle("/", http.FileServer(vfs.FS(ctx.Config.Webdev)))
|
||||
mux.Handle("/api/tile/", &Tiles{ctx: ctx})
|
||||
mux.Handle("/api/config", &ConfigHandler{ctx: ctx})
|
||||
mux.Handle("/api/ws", &WS{ctx: ctx})
|
||||
|
||||
if ctx.Config.WebApi.EnableMapblock {
|
||||
mux.Handle("/api/mapblock/", &MapblockHandler{ctx: ctx})
|
||||
|
38
web/ws.go
Normal file
38
web/ws.go
Normal file
@ -0,0 +1,38 @@
|
||||
package web
|
||||
|
||||
import (
|
||||
"mapserver/app"
|
||||
"net/http"
|
||||
"github.com/gorilla/websocket"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type WS struct {
|
||||
ctx *app.App
|
||||
}
|
||||
|
||||
var upgrader = websocket.Upgrader{
|
||||
ReadBufferSize: 1024,
|
||||
WriteBufferSize: 1024,
|
||||
}
|
||||
|
||||
func (t *WS) ServeHTTP(resp http.ResponseWriter, req *http.Request) {
|
||||
conn, _ := upgrader.Upgrade(resp, req, nil)
|
||||
|
||||
for {
|
||||
// Read message from browser
|
||||
msgType, msg, err := conn.ReadMessage()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
// Print the message to the console
|
||||
fmt.Printf("%s sent: %s\n", conn.RemoteAddr(), string(msg))
|
||||
|
||||
// Write message back to browser
|
||||
if err = conn.WriteMessage(msgType, msg); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user