This project is a simple WebSocket echo server implemented in Go using the Gorilla WebSocket library. The server listens for WebSocket connections, receives messages, and echoes them back to the client.
- Go 1.13 or later
- Git
-
Clone the repository:
git clone https://github.com/yourusername/websocket-echo-server.git cd websocket-echo-server
-
Download and install dependencies:
go get -u github.com/gorilla/websocket
The server uses the gorilla/websocket
package for handling WebSocket connections. Install it using go get
:
go get -u github.com/gorilla/websocket
-
Upgrader:
The
Upgrader
is used to upgrade the HTTP connection to a WebSocket connection:var upgrader = websocket.Upgrader{ ReadBufferSize: 1024, WriteBufferSize: 1024, CheckOrigin: func(r *http.Request) bool { return true }, }
-
WebSocket Handler:
The
websocketHandler
function handles WebSocket connections. It reads messages from the client and echoes them back:func websocketHandler(w http.ResponseWriter, r *http.Request) { conn, err := upgrader.Upgrade(w, r, nil) if err != nil { log.Println(err) return } defer conn.Close() for { _, message, err := conn.ReadMessage() if err != nil { log.Println(err) break } log.Printf("Received Message: %s", message) err = conn.WriteMessage(websocket.TextMessage, message) if err != nil { log.Fatalln(err) break } } }
-
Main Function:
The
main
function sets up the HTTP server and routes:func main() { http.HandleFunc("/websocket", websocketHandler) log.Fatal(http.ListenAndServe(":8080", nil)) }
This project is licensed under the MIT License. See the LICENSE file for details.