42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
// The Vue build version to load with the `import` command
|
|
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
|
|
import Vue from 'vue'
|
|
import App from './App'
|
|
|
|
Vue.config.productionTip = false
|
|
|
|
console.log('Kafkakitty bootstrapping..')
|
|
|
|
function wsConnect () {
|
|
const socket = new WebSocket('ws://localhost:8001')
|
|
socket.onopen = (event) => {
|
|
console.log('Kafkakitty connected! 😺')
|
|
}
|
|
socket.onerror = (err) => {
|
|
console.error('😿 Kafkakitty encountered an error:', err)
|
|
socket.close()
|
|
wsConnect()
|
|
}
|
|
socket.onclose = (event) => {
|
|
console.log('Kafkakitty connection lost, retrying..')
|
|
wsConnect()
|
|
}
|
|
|
|
socket.onmessage = (event) => {
|
|
console.log(`Received: ${event.data}`)
|
|
const container = document.getElementById('app')
|
|
const d = document.createElement('div')
|
|
d.className = 'row'
|
|
d.innerHTML = `<pre><code>${event.data}</code></pre>`
|
|
container.insertBefore(d, container.firstChild)
|
|
}
|
|
}
|
|
wsConnect()
|
|
|
|
/* eslint-disable no-new */
|
|
new Vue({
|
|
el: '#app',
|
|
components: { App },
|
|
template: '<App/>'
|
|
})
|