kaca是用golang语言开发的基于websocket协议的消息发布/订阅系统。
服务器端代码:
package mainimport ( "github.com/scottkiss/kaca" )func main() { //use true to set check origin kaca.ServeWs(":8080",true)}发布订阅客户端:
package mainimport ( "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 mainimport ( "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))})}
评论