https://github.com/koding/websocketproxy
WebSocket reverse proxy handler for Go
https://github.com/koding/websocketproxy
Last synced: 8 months 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 (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-08-16T07:18:00.000Z (over 2 years ago)
- Last Synced: 2025-04-05T19:07:50.950Z (9 months 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 main
import (
"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`