import React from 'react' import Table from 'react-bootstrap/Table' import './App.css' class App extends React.Component { constructor(props) { super(props) this.state = { flows: [], } this.ws = null } componentDidMount() { this.initWs() } componentWillUnmount() { if (this.ws) { this.ws.close() } } initWs() { if (this.ws) return this.ws = new WebSocket("ws://localhost:9081/echo") this.ws.onopen = () => { console.log('OPEN') } this.ws.onclose = () => { console.log('CLOSE') } this.ws.onmessage = evt => { const data = JSON.parse(evt.data) console.log(data) const flow = data.flow const id = flow.id if (data.on === 'request') { this.setState({ flows: this.state.flows.concat(flow) }) } else if (data.on === 'response') { const flows = this.state.flows.map(f => { if (f.id === id) return flow return f }) this.setState({ flows }) } } this.ws.onerror = evt => { console.log('ERROR: ' + evt.data) } // this.ws.send('msg') // this.ws.close() } render() { const { flows } = this.state return (
Status | Method | Host | Path |
---|---|---|---|
{response.statusCode || '(pending)'} | {request.method} | {u.host} | {path} |