WEB/Electron

[Electron] 서버에 데이터 전송(통신)하는 방법 - ipc

S0PH1A 2019. 2. 20. 12:40
반응형

[Electron] 서버와 데이터 전송(통신)하는 방법 - ipc



ajax로 데이터를 전송하려고 했더니, path가 C:/ 밑으로 표시되는 바람에 
데이터를 어떻게 서버(main)으로 전송해야할지 찾아보니 ipc라는 모듈이 있었다.



main 프로세스에서 renderer 프로세스로 비동기적인 통신을 한다.
즉, 이벤트를 처리하고 renderer 에 메시지를 보내기 위해 사용 된다.

주요 메소드
- ipcMain.on(channel, listener) : channel에 대해 이벤트 메세지 수신


renderer 프로세스에서 main 프로세스로 비동기적인 통신을 한다.
즉, 이벤트를 처리하고 main에 메시지를 보내기 위해 사용된다.

주요 메소드 
- ipcRenderer.on(channel, listener) : main이 보낸 메세지 수신
- ipcRenderer.send(channel, listener) : main으로 메세지 전송


* Chennel을 renderer 와 main을 맞춰주면 서로 통신하게 된다.
* 보낼 데이터(lisenter)는 단일 값, 딕셔너리(json). 리스트 모두 사용 가능 하다.
   받는 곳(ipcMain)에서 arguments를 데이터에 맞춰서 제대로 선언만 해주면 된다.

ex)  단일 값
var ipc = require('electron').ipcRenderer;
ipc.send(채널명, abc1);

const ipcMain = require('electron').ipcMain;
ipcMain.on(채널명, function (event, arg) {
    var a = arg;
});

ex) 리스트
var ipc = require('electron').ipcRenderer;
ipc.send(채널명, abc1, abc2);

const ipcMain = require('electron').ipcMain;
ipcMain.on(채널명, function (event, arg1, arg2) {
    var a = arg1;
    var b = arg2;
});

ex) 딕셔너리(dictionary / json)
var ipc = require('electron').ipcRenderer;
ipc.send(채널명, {"a": abc1, "b": abc2});

const ipcMain = require('electron').ipcMain;
ipcMain.on(채널명, function (event, arg) {
    var a = arg.a;
    var b = arg.b;
});







[참고] ipc-renderer

[참고] ipc-main

반응형