net/websocket
websocket通信はGETリクエストで行われる
実際に通信をして確認したいときは、wscatを使う
yarn global add wscatでインストールできる
wscat -c 127.0.0.1:8686/api/chats/ -o localhost:8686で通信を行うことができる
code: main.go
package controller
import (
"fmt"
"golang.org/x/net/websocket"
"net/http"
)
type Chat struct{}
func NewChat() *Chat {
return &Chat{}
}
func (c *Chat) Echo(w http.ResponseWriter, r *http.Request) {
websocket.Handler(func(ws *websocket.Conn) {
defer ws.Close()
var err error
for {
var reply string
if err = websocket.Message.Receive(ws, &reply); err != nil {
fmt.Println("Can't receive")
break
}
fmt.Println("Received back from client: " + reply)
msg := "Received: " + reply
fmt.Println("Sending to client: " + msg)
if err = websocket.Message.Send(ws, msg); err != nil {
fmt.Println("Can't send")
break
}
}
}).ServeHTTP(w, r)
}
参考