kaca消息發(fā)布/訂閱系統(tǒng)
kaca 是用 golang 語言開發(fā)的基于 websocket 協(xié)議的消息發(fā)布/訂閱系統(tǒng)。
服務(wù)器端代碼:
package main
import (
"github.com/scottkiss/kaca"
)
func main() {
//use true to set check origin
kaca.ServeWs(":8080",true)
}
發(fā)布訂閱客戶端:
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))
}
廣播客戶端:
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))
})
}評(píng)論
圖片
表情
