https://github.com/koding/websocketproxy
WebSocket reverse proxy handler for Go
https://github.com/koding/websocketproxy
Last synced: 4 days ago
JSON representation
WebSocket reverse proxy handler for Go
- Host: GitHub
- URL: https://github.com/koding/websocketproxy
- Owner: koding
- License: mit
- Created: 2014-06-06T03:15:26.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2023-08-16T07:18:00.000Z (over 1 year ago)
- Last Synced: 2025-04-05T19:07:50.950Z (11 days ago)
- Language: Go
- Homepage: http://godoc.org/github.com/koding/websocketproxy
- Size: 29.3 KB
- Stars: 432
- Watchers: 18
- Forks: 121
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-network-stuff - **224**星
README
# WebsocketProxy [](https://godoc.org/github.com/koding/websocketproxy) [](https://travis-ci.org/koding/websocketproxy)
WebsocketProxy is an http.Handler interface build on top of
[gorilla/websocket](https://github.com/gorilla/websocket) that you can plug
into your existing Go webserver to provide WebSocket reverse proxy.## Install
```bash
go get github.com/koding/websocketproxy
```## Example
Below is a simple server that proxies to the given backend URL
```go
package mainimport (
"flag"
"net/http"
"net/url""github.com/koding/websocketproxy"
)var (
flagBackend = flag.String("backend", "", "Backend URL for proxying")
)func main() {
u, err := url.Parse(*flagBackend)
if err != nil {
log.Fatalln(err)
}err = http.ListenAndServe(":80", websocketproxy.NewProxy(u))
if err != nil {
log.Fatalln(err)
}
}
```Save it as `proxy.go` and run as:
```bash
go run proxy.go -backend ws://example.com:3000
```Now all incoming WebSocket requests coming to this server will be proxied to
`ws://example.com:3000`