Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koding/websocketproxy
WebSocket reverse proxy handler for Go
https://github.com/koding/websocketproxy
Last synced: about 13 hours 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 10 years ago)
- Default Branch: master
- Last Pushed: 2023-08-16T07:18:00.000Z (over 1 year ago)
- Last Synced: 2024-12-05T19:08:28.565Z (8 days ago)
- Language: Go
- Homepage: http://godoc.org/github.com/koding/websocketproxy
- Size: 29.3 KB
- Stars: 429
- Watchers: 19
- Forks: 120
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-network-stuff - **224**星
README
# WebsocketProxy [![GoDoc](https://godoc.org/github.com/koding/websocketproxy?status.svg)](https://godoc.org/github.com/koding/websocketproxy) [![Build Status](https://travis-ci.org/koding/websocketproxy.svg)](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`