Commit 0f766dbe authored by ioedeveloper's avatar ioedeveloper Committed by yann300

Try calling websocket plugin

parent fdf42022
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -34,7 +34,6 @@ export class RemixdHandle extends WebsocketPlugin {
this.fileSystemExplorer = fileSystemExplorer
this.locahostProvider = locahostProvider
this.appManager = appManager
this.methods = ['get']
}
deactivate () {
......
'use strict'
var EventManager = require('../lib/events')
var modalDialog = require('../app/ui/modaldialog')
var yo = require('yo-yo')
// 'use strict'
// var EventManager = require('../lib/events')
// var modalDialog = require('../app/ui/modaldialog')
// var yo = require('yo-yo')
class Remixd {
constructor (port) {
this.event = new EventManager()
this.port = port
this.callbacks = {}
this.callid = 0
this.socket = null
this.connected = false
this.receiveResponse()
}
// class Remixd {
// constructor (port) {
// this.event = new EventManager()
// this.port = port
// this.callbacks = {}
// this.callid = 0
// this.socket = null
// this.connected = false
// this.receiveResponse()
// }
online () {
return this.socket !== null
}
// online () {
// return this.socket !== null
// }
close () {
if (this.socket) {
this.socket.close()
this.socket = null
}
}
// close () {
// if (this.socket) {
// this.socket.close()
// this.socket = null
// }
// }
start (cb) {
if (this.socket) {
try {
this.socket.close()
} catch (e) {}
}
this.event.trigger('connecting', [])
this.socket = new WebSocket('ws://localhost:' + this.port, 'echo-protocol') // eslint-disable-line
// start (cb) {
// if (this.socket) {
// try {
// this.socket.close()
// } catch (e) {}
// }
// this.event.trigger('connecting', [])
// this.socket = new WebSocket('ws://localhost:' + this.port, 'echo-protocol') // eslint-disable-line
this.socket.addEventListener('open', (event) => {
this.connected = true
this.event.trigger('connected', [event])
cb()
})
// this.socket.addEventListener('open', (event) => {
// this.connected = true
// this.event.trigger('connected', [event])
// cb()
// })
this.socket.addEventListener('message', (event) => {
var data = JSON.parse(event.data)
if (data.type === 'reply') {
if (this.callbacks[data.id]) {
this.callbacks[data.id](data.error, data.result)
delete this.callbacks[data.id]
}
this.event.trigger('replied', [data])
} else if (data.type === 'notification') {
this.event.trigger('notified', [data])
} else if (data.type === 'system') {
if (data.error) {
this.event.trigger('system', [{
error: data.error
}])
}
}
})
// this.socket.addEventListener('message', (event) => {
// var data = JSON.parse(event.data)
// if (data.type === 'reply') {
// if (this.callbacks[data.id]) {
// this.callbacks[data.id](data.error, data.result)
// delete this.callbacks[data.id]
// }
// this.event.trigger('replied', [data])
// } else if (data.type === 'notification') {
// this.event.trigger('notified', [data])
// } else if (data.type === 'system') {
// if (data.error) {
// this.event.trigger('system', [{
// error: data.error
// }])
// }
// }
// })
this.socket.addEventListener('error', (event) => {
this.errored(event)
cb(event)
})
// this.socket.addEventListener('error', (event) => {
// this.errored(event)
// cb(event)
// })
this.socket.addEventListener('close', (event) => {
if (event.wasClean) {
this.connected = false
this.event.trigger('closed', [event])
} else {
this.errored(event)
}
this.socket = null
})
}
// this.socket.addEventListener('close', (event) => {
// if (event.wasClean) {
// this.connected = false
// this.event.trigger('closed', [event])
// } else {
// this.errored(event)
// }
// this.socket = null
// })
// }
async receiveResponse (requestId) {
return new Promise((resolve, reject) => {
this.event.register('replied', (data) => {
if (data.id === requestId) {
if (data.error) reject(data.error)
else resolve(data.result)
}
})
})
}
// async receiveResponse (requestId) {
// return new Promise((resolve, reject) => {
// this.event.register('replied', (data) => {
// if (data.id === requestId) {
// if (data.error) reject(data.error)
// else resolve(data.result)
// }
// })
// })
// }
errored (event) {
function remixdDialog () {
return yo`<div>Connection to Remixd closed. Localhost connection not available anymore.</div>`
}
if (this.connected) {
modalDialog('Lost connection to Remixd!', remixdDialog(), {}, {label: ''})
}
this.connected = false
this.socket = null
this.event.trigger('errored', [event])
}
// errored (event) {
// function remixdDialog () {
// return yo`<div>Connection to Remixd closed. Localhost connection not available anymore.</div>`
// }
// if (this.connected) {
// modalDialog('Lost connection to Remixd!', remixdDialog(), {}, {label: ''})
// }
// this.connected = false
// this.socket = null
// this.event.trigger('errored', [event])
// }
call (service, fn, args, callback) {
return new Promise((resolve, reject) => {
......@@ -120,27 +120,27 @@ class Remixd {
})
}
ensureSocket (cb) {
if (this.socket) return cb(null, this.socket)
this.start((error) => {
if (error) {
cb(error)
} else {
cb(null, this.socket)
}
})
}
// ensureSocket (cb) {
// if (this.socket) return cb(null, this.socket)
// this.start((error) => {
// if (error) {
// cb(error)
// } else {
// cb(null, this.socket)
// }
// })
// }
format (service, fn, args) {
var data = {
id: this.callid,
service: service,
fn: fn,
args: args
}
this.callid++
return data
}
}
// format (service, fn, args) {
// var data = {
// id: this.callid,
// service: service,
// fn: fn,
// args: args
// }
// this.callid++
// return data
// }
// }
module.exports = Remixd
// module.exports = Remixd
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment