微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

kaca 消息发布/订阅系统

程序名称:kaca

授权协议: MIT

操作系统: 跨平台

开发语言: Google Go

kaca 介绍

kaca 是用 golang 语言开发的基于 websocket 协议的消息发布/订阅系统。

服务器端代码

package main

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

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

发布订阅客户端:

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))
})
}

kaca 官网

http://git.oschina.net/scottkiss/kaca

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐