Skip to content
a pub/sub messaging system based on websocket
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
client.go
conn.go
dispatcher.go
kaca.go

README.md

about kaca

a pub/sub messaging system based on websocket

Getting started

go get github.com/scottkiss/kaca

server

package main

import (
        "github.com/scottkiss/kaca"
       )

func main() {
    //use true to set check origin
    kaca.ServeWs(":8080",true)
}

pub/sub client

package main

import (
        "fmt"
        "github.com/scottkiss/kaca"
        "time"
       )

func main() {
              producer := kaca.NewClient(":8080", "ws")
              consumer := kaca.NewClient(":8080", "ws")
              consumer.Sub("say")
              consumer.Sub("you")
              consumer.ConsumeMessage(func(message string) {
                      fmt.Println("consume =>" + message)
                      })
          time.Sleep(time.Second * time.Duration(2))
              producer.Pub("you", "world")
              producer.Pub("say", "hello")
              time.Sleep(time.Second * time.Duration(2))
}

broadcast client

package main

import (
        "fmt"
        "github.com/scottkiss/kaca"
        "time"
       )

func main() {
              producer := kaca.NewClient(":8080", "ws")
              consumer := kaca.NewClient(":8080", "ws")
              c2 := kaca.NewClient(":8080", "ws")
              c2.ConsumeMessage(func(message string) {
                      fmt.Println("c2 consume =>" + message)
                      })
              consumer.Sub("say")
              consumer.Sub("you")
              consumer.ConsumeMessage(func(message string) {
                      fmt.Println("consume =>" + message)
                      })
              time.Sleep(time.Second * time.Duration(2))
              producer.Broadcast("broadcast...")
              time.Sleep(time.Second * time.Duration(2))
}
You can’t perform that action at this time.