12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package main
- import (
- "flag"
- "fmt"
- "log"
- "net/http"
- "github.com/gorilla/websocket"
- )
- var addr = flag.String("addr", "localhost:8080", "http service address")
- var upgrader = websocket.Upgrader{
- // 解决跨域问题
- CheckOrigin: func(r *http.Request) bool {
- return true
- },
- } // use default options
- func ws(w http.ResponseWriter, r *http.Request) {
- c, err := upgrader.Upgrade(w, r, nil)
- if err != nil {
- log.Print("upgrade:", err)
- return
- }
- defer c.Close()
- for {
- mt, message, err := c.ReadMessage()
- if err != nil {
- log.Println("read:", err)
- break
- }
- log.Printf("recv: %s", message)
- err = c.WriteMessage(mt, message)
- if err != nil {
- log.Println("write:", err)
- break
- }
- }
- }
- func main() {
- flag.Parse()
- log.SetFlags(0)
- http.HandleFunc("/ws", ws)
- fmt.Println(*addr)
- log.Fatal(http.ListenAndServe(*addr, nil))
- }
|