github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/igm/sockjs-go.v2/examples/webecho/webecho.gon-place (about) 1 package main 2 3 import ( 4 "flag" 5 "log" 6 "net/http" 7 8 "yougam/libraries/igm/sockjs-go.v2/sockjs" 9 ) 10 11 var ( 12 websocket = flag.Bool("websocket", true, "enable/disable websocket protocol") 13 ) 14 15 func init() { 16 flag.Parse() 17 } 18 19 func main() { 20 opts := sockjs.DefaultOptions 21 opts.Websocket = *websocket 22 handler := sockjs.NewHandler("/echo", opts, echoHandler) 23 http.Handle("/echo/", handler) 24 http.Handle("/", http.FileServer(http.Dir("web/"))) 25 log.Println("Server started on port: 8080") 26 log.Fatal(http.ListenAndServe(":8080", nil)) 27 } 28 29 func echoHandler(session sockjs.Session) { 30 log.Println("new sockjs session established") 31 for { 32 if msg, err := session.Recv(); err == nil { 33 session.Send(msg) 34 continue 35 } 36 break 37 } 38 log.Println("sockjs session closed") 39 }