コード例 #1
0
ファイル: handlers.go プロジェクト: Huangyan9188/micro
func (c *conn) writeLoop() {
	ticker := time.NewTicker(pingTime)

	subscriber, err := broker.Subscribe(c.topic, func(msg *broker.Message) {
		b, err := json.Marshal(msg)
		if err != nil {
			return
		}
		c.write(websocket.TextMessage, b)
	})

	defer func() {
		subscriber.Unsubscribe()
		ticker.Stop()
		c.ws.Close()
	}()

	if err != nil {
		log.Error(err.Error())
		return
	}

	for _ = range ticker.C {
		if err := c.write(websocket.PingMessage, []byte{}); err != nil {
			return
		}
	}
}
コード例 #2
0
ファイル: main.go プロジェクト: kgrvamsi/go-micro
func sub() {
	_, err := broker.Subscribe(topic, func(msg *broker.Message) {
		fmt.Println("[sub] received message:", string(msg.Body), "header", msg.Header)
	})
	if err != nil {
		fmt.Println(err)
	}
}