Server.js 897 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /**
  2. * @author oldj
  3. * @blog https://oldj.net
  4. */
  5. 'use strict'
  6. const EventEmitter = require('events')
  7. const {ipcMain} = require('electron')
  8. const actions = require('./actions/index')
  9. const app = require('./http/app')
  10. let renderer
  11. let svr = new EventEmitter()
  12. svr.broadcast = broadcast
  13. function broadcast (event, ...args) {
  14. if (!renderer) {
  15. console.log('no renderer!')
  16. return
  17. }
  18. try {
  19. renderer.send('y', {
  20. event,
  21. data: args
  22. })
  23. } catch (e) {
  24. console.log(e)
  25. }
  26. }
  27. ipcMain.on('x', (e, d) => {
  28. let sender = e.sender
  29. if (!renderer) {
  30. renderer = sender
  31. }
  32. let action = d.action
  33. if (typeof actions[action] === 'function') {
  34. actions[action](svr, ...(d.data || []))
  35. .then(v => {
  36. sender.send(d.callback, [null, v])
  37. })
  38. .catch(e => {
  39. console.log('x:err', e)
  40. sender.send(d.callback, [e])
  41. })
  42. }
  43. })