Skip to content

js0exp/go-socket.io-redis

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-socket.io-redis

By running go-socket.io with this adapter, you can run multiple socket.io instances in different processes or servers that can all broadcast and emit events to and from each other.

How to use

Install the package using:

go get "github.com/satyakb/go-socket.io-redis"

Usage:

import (
    "log"
    "net/http"
    "github.com/googollee/go-socket.io"
    "github.com/satyakb/go-socket.io-redis"
)

func main() {
    server, err := socketio.NewServer(nil)
    if err != nil {
        log.Fatal(err)
    }

    opts := make(map[string]string)
    server.SetAdaptor(redis.Redis(opts))

    server.On("connection", func(so socketio.Socket) {
        log.Println("on connection")
        so.Join("chat")
        so.On("chat message", func(msg string) {
            log.Println("emit:", so.Emit("chat message", msg))
            so.BroadcastTo("chat", "chat message", msg)
        })
        so.On("disconnection", func() {
            log.Println("on disconnect")
        })
    })
    server.On("error", func(so socketio.Socket, err error) {
        log.Println("error:", err)
    })

    http.Handle("/socket.io/", server)
    http.Handle("/", http.FileServer(http.Dir("./asset")))
    log.Println("Serving at localhost:5000...")
    log.Fatal(http.ListenAndServe(":5000", nil))
}

Note: The package is named redis for use in your code

API

Redis(opts map[string]string)

The following options are allowed:

  • host: host to connect to redis on ("localhost")
  • port: port to connect to redis on ("6379")
  • prefix: the prefix of the key to pub/sub events on ("socket.io")

References

Code and README based off of:

About

Redis adapter for go-socket.io

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%