Bridge Apps

Socket.IO을 지원하는 모든 플랫폼(또는 앱)에서 ProtoPie Connect로 메시지를 전달 할 수 있습니다. Bridge App은 이러한 메시지 전달의 역할을 하는 어플리케이션입니다.

Bridge App 은 하드웨어에서 발생한 이벤트를 포착할 수도 있고, 서버로부터 데이터를 받을 수도 있으며 때로는 독립된 어플리케이션 기능을 합니다. 이벤트, 데이터 등은 Socket.IO를 통해서 ProtoPie Connect 에 전달할 수 있는 데이터로 변환하여 보냅니다.

아래 예시에서 Bridge App은 Logitech G29의 이벤트를 디바이스 드라이버를 통해서 수신합니다. 수신 후, Socket.IO를 통해 이벤트를 JSON으로 변환하여 ProtoPie Connect에 전달합니다.

JSON API를 이용해 ProtoPie Connect로 메시지를 보내면 ProtoPie Connect에서 프로토타입, Bridge App, 외부 디바이스 등에 브로드캐스팅합니다. 메시지 포맷은 JSON 타입으로 다음과 같은 구조를 가지고 있습니다.

{ messageId: "messageId", value: "value", };

다음 예제는 Node.js에서 Socket.IO를 이용하여 ProtoPie Connect로 내보낸 메시지입니다. 전체 소스 코드는 GitHub에서 확인하실 수 있습니다.

// socket.io-client must be installed by `npm install socket.io-client` const io = require('socket.io-client'); function main(address) { // open connection to ProtoPie Connect with address const socket = io(address); // event for socket connected socket.on('connect', () => { console.log('Socket connected', address); }); // event for socket disconnected socket.on('disconnect', () => { console.log('Socket disconnected'); }); // receive message to ProtoPie Connect socket.on('ppMessage', (message) => { console.log( 'Message form ProtoPie Connect', message.messageId, message.value ); }); setInterval(() => { // message JSON format const message = { messageId: 'time', // messageId for ProtoPie Connect value: new Date(), // value for ProtoPie Connect }; console.log( 'Message to ProtoPie Connect', message.messageId, message.value ); // send message to ProtoPie Connect with event name 'ppMessage' and message socket.emit('ppMessage', message); }, 1000); } main('http://localhost:9981');

Back To Top