https://github.com/syhlion/redisocket.v2
redisocket v2
https://github.com/syhlion/redisocket.v2
golang-package redis websocket
Last synced: 5 months ago
JSON representation
redisocket v2
- Host: GitHub
- URL: https://github.com/syhlion/redisocket.v2
- Owner: syhlion
- License: mit
- Created: 2016-07-18T06:35:14.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2022-12-07T01:26:29.000Z (over 3 years ago)
- Last Synced: 2024-04-15T03:30:35.813Z (about 2 years ago)
- Topics: golang-package, redis, websocket
- Language: Go
- Size: 218 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# redisocket.v2
[](https://goreportcard.com/report/github.com/syhlion/redisocket.v2)
[](https://travis-ci.org/syhlion/redisocket.v2)
Base on gorilla/websocket & garyburd/redigo
Implement By Observer pattern
## Documention
* [API Reference](https://godoc.org/github.com/syhlion/redisocket.v2)
## Install
`go get github.com/syhlion/redisocket.v2`
## Usaged
``` go
func TestEvent(d []byte) (data []byte, err error) {
return d, nil
}
func main() {
pool := redis.NewPool(func() (redis.Conn, error) {
return redis.Dial("tcp", ":6379")
}, 10)
app := redisocket.NewHub(pool,false)
err := make(chan error)
go func() {
err <- app.Listen()
}()
http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) {
client,err:= app.Upgrade(w, r, nil, "Scott", "appKey")
if err != nil {
log.Fatal("Client Connect Error")
return
}
err = client.Listen(func(data []byte) (d []byte, err error) {
return data,nil
})
log.Println(err, "http point")
return
})
go func() {
err <- http.ListenAndServe(":8888", nil)
}()
select {
case e := <-err:
log.Println(e)
}
}
```