integrates drone/mq into agent

This commit is contained in:
Brad Rydzewski
2016-09-26 03:29:05 -05:00
parent f2c1d46f9e
commit 0b2f1c8e51
7 changed files with 145 additions and 281 deletions

View File

@@ -66,15 +66,16 @@ func LogStream(c *gin.Context) {
defer ticker.Stop()
done := make(chan bool)
dest := fmt.Sprintf("/topic/%d", job.ID)
dest := fmt.Sprintf("/topic/logs.%d", job.ID)
client, _ := stomp.FromContext(c)
sub, err := client.Subscribe(dest, stomp.HandlerFunc(func(m *stomp.Message) {
if len(m.Header.Get([]byte("eof"))) != 0 {
defer m.Release()
if m.Header.GetBool("eof") {
done <- true
return
}
ws.SetWriteDeadline(time.Now().Add(writeWait))
ws.WriteMessage(websocket.TextMessage, m.Body)
m.Release()
}))
if err != nil {
logrus.Errorf("Unable to read logs from broker. %s", err)