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  }