# kiteq-client-go **Repository Path**: blackbeans/kiteq-client-go ## Basic Information - **Project Name**: kiteq-client-go - **Description**: kiteq-client-go is kiteq's go client - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 2 - **Created**: 2016-05-12 - **Last Updated**: 2025-08-25 ## Categories & Tags **Categories**: message-server **Tags**: None ## README # kiteq-client-go kiteq-client-go is kiteq's go client #### 工程结构 kiteq/ ├── README.md ├── log log4go的配置 ├── benchmark KiteQ的Benchmark程序 ├── client KiteQ的客户端 ##### 启动客户端: ``` 对于KiteQClient需要实现消息监听器,我们定义了如下的接口: type IListener interface { //接受投递消息的回调 OnMessage(msg *protocol.StringMessage) bool //接收事务回调 // 除非明确提交成功、其余都为不成功 // 有异常或者返回值为false均为不提交 OnMessageCheck(tx *protocol.TxResponse) error } 启动Producer : producer := client.NewKiteQClient(${zkhost}, ${groupId}, ${password}, &defualtListener{}) producer.SetTopics([]string{"trade"}) producer.Start() //构建消息 msg := &protocol.StringMessage{} msg.Header = &protocol.Header{ MessageId: proto.String(client.MessageId()), Topic: proto.String("trade"), MessageType: proto.String("pay-succ"), ExpiredTime: proto.Int64(time.Now().Unix()), DeliveryLimit: proto.Int32(-1), GroupId: proto.String("go-kite-test"), Commit: proto.Bool(true)} msg.Body = proto.String("echo") //发送消息 producer.SendStringMessage(msg) 启动Consumer: consumer:= client.NewKiteQClient(${zkhost}, ${groupId}, ${password}, &defualtListener{}) consumer.SetBindings([]*binding.Binding{ binding.Bind_Direct("s-mts-test", "trade", "pay-succ", 1000, true), }) consumer.Start() ``` Bingo 完成发布和订阅消息的功能了..... - 可以参考benchmark中使用