package socket import ( "fmt" "net/http" "golang.org/x/net/websocket" ) func RegisterEndpoints() { http.Handle("/ws", websocket.Handler(handleWS)) } func handleWS(conn *websocket.Conn) { fmt.Printf("%v connecting\n", conn.Config().Origin); defer conn.Close() // Adding to the pool var connCache = Connection { UUID: "", WS: conn, } var regErr = connCache.Register() if regErr != nil { fmt.Printf("Failed to register the connection: %s\n", regErr.Error()); return } if err := websocket.Message.Send(conn, GetModule()); err != nil { fmt.Printf("Failed to send initial module: %s\n", err.Error()) return } var buf = make([]byte, 1024) var length, err = conn.Read(buf) if err != nil { fmt.Printf("Connection closed or error: %v\n", err) return } fmt.Printf("Recieved %v from WS\n", string(buf[:length])) if err := websocket.Message.Send(conn, []byte("xdx")); err != nil { fmt.Printf("Failed to send initial module: %s\n", err.Error()) return } for { length, err = conn.Read(buf) if err != nil { fmt.Printf("Connection closed or error: %v\n", err) break } fmt.Printf("Recieved \"%v\" from WS\n", string(buf[:length])) // conn.Write(buf[:length]) } }