Просмотр исходного кода

display logs from beginning before websocket has been established

sunguroku 5 лет назад
Родитель
Сommit
ab55517818

+ 3 - 0
dashboard/src/main/home/new-project/NewProject.tsx

@@ -235,6 +235,9 @@ export default class NewProject extends Component<PropsType, StateType> {
                     })
                   }
                 });
+
+                this.props.setCurrentView('provisioner', {infra_id: 1, kind: "ecr"});
+
               } else {
                 this.props.setCurrentView('dashboard', null);
               }

+ 4 - 2
dashboard/src/main/home/new-project/Provisioner.tsx

@@ -42,8 +42,9 @@ export default class Provisioner extends Component<PropsType, StateType> {
       }
   
       this.state.ws.onmessage = (evt: MessageEvent) => {
-        console.log(evt.data)
-        this.setState({ logs: [...this.state.logs, evt.data] }, () => {
+        let event = JSON.parse(evt.data)
+        let data = event.map((msg: any) => { return msg["Values"]["data"]})
+        this.setState({ logs: [...this.state.logs, ...data] }, () => {
           this.scrollToBottom()
         })
       }
@@ -58,6 +59,7 @@ export default class Provisioner extends Component<PropsType, StateType> {
 
   componentWillUnmount() {
     if (this.state.ws) {
+      console.log('closing websocket')
       this.state.ws.close()
     }
   }

+ 1 - 1
internal/kubernetes/provisioner/resource_stream.go

@@ -46,7 +46,7 @@ func ResourceStream(client *redis.Client, streamName string, conn *websocket.Con
 			messages := xstream[0].Messages
 			lastID = messages[len(messages)-1].ID
 
-			if writeErr := conn.WriteMessage(websocket.TextMessage, []byte(fmt.Sprint(messages))); writeErr != nil {
+			if writeErr := conn.WriteJSON(messages); writeErr != nil {
 				errorchan <- writeErr
 				return
 			}