Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nisalrenuja/go-gorilla-ws
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.
https://github.com/nisalrenuja/go-gorilla-ws
Last synced: 5 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/nisalrenuja/go-gorilla-ws
- Owner: nisalrenuja
- Created: 2024-06-25T11:20:44.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-25T15:46:03.000Z (7 months ago)
- Last Synced: 2024-11-25T16:35:21.062Z (2 months ago)
- Language: Go
- Homepage:
- Size: 1.95 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WebSocket Echo Server in Go
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.
## Prerequisites
- Go 1.13 or later
- Git## Installation
1. **Clone the repository:**
```sh
git clone https://github.com/yourusername/websocket-echo-server.git
cd websocket-echo-server
```2. **Download and install dependencies:**
```sh
go get -u github.com/gorilla/websocket
```## Code Explanation
### Dependencies
The server uses the `gorilla/websocket` package for handling WebSocket connections. Install it using `go get`:
```sh
go get -u github.com/gorilla/websocket
```### Server Implementation
1. **Upgrader:**
The `Upgrader` is used to upgrade the HTTP connection to a WebSocket connection:
```go
var upgrader = websocket.Upgrader{
ReadBufferSize: 1024,
WriteBufferSize: 1024,
CheckOrigin: func(r *http.Request) bool {
return true
},
}
```2. **WebSocket Handler:**
The `websocketHandler` function handles WebSocket connections. It reads messages from the client and echoes them back:
```go
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
}
}
}
```3. **Main Function:**
The `main` function sets up the HTTP server and routes:
```go
func main() {
http.HandleFunc("/websocket", websocketHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
```## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Acknowledgments
- [Gorilla WebSocket](https://github.com/gorilla/websocket)
---