1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package main
- import (
- "fmt"
- "log"
- "net/http"
- "github.com/gorilla/websocket"
- )
- var upgrader = websocket.Upgrader{
- CheckOrigin: func(r *http.Request) bool {
- return true
- },
- }
- func echo(w http.ResponseWriter, r *http.Request) {
- conn, err := upgrader.Upgrade(w, r, nil)
- if err != nil {
- log.Println("Upgrade error:", err)
- return
- }
- defer conn.Close()
- for key, values := range r.Header {
- for _, value := range values {
- message := fmt.Sprintf("%s: %s", key, value)
- if err := conn.WriteMessage(websocket.TextMessage, []byte(message)); err != nil {
- log.Println("WriteMessage error:", err)
- return
- }
- }
- }
- if err := conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, "")); err != nil {
- log.Println("CloseMessage error:", err)
- return
- }
- }
- func main() {
- http.HandleFunc("/echo", echo)
- log.Fatal(http.ListenAndServe(":8888", nil))
- }
|