func pub() { tick := time.NewTicker(time.Second) i := 0 for _ = range tick.C { msg := &broker.Message{ Header: map[string]string{ "id": fmt.Sprintf("%d", i), }, Body: []byte(fmt.Sprintf("%d: %s", i, time.Now().String())), } if err := broker.Publish(topic, msg); err != nil { log.Errorf("[pub] failed: %v", err) } else { fmt.Println("[pub] pubbed message:", string(msg.Body)) } i++ } }
func (c *conn) readLoop() { defer func() { c.ws.Close() }() c.ws.SetReadLimit(readLimit) c.ws.SetReadDeadline(time.Now().Add(readDeadline)) c.ws.SetPongHandler(func(string) error { c.ws.SetReadDeadline(time.Now().Add(readDeadline)) return nil }) for { _, message, err := c.ws.ReadMessage() if err != nil { return } broker.Publish(c.topic, &broker.Message{Body: message}) } }