Bridge Apps

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

[object Object]

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

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

[object Object]

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