Skip to content

tutorial nodejs

Tomoki Hayashi edited this page Feb 4, 2019 · 1 revision

node-jsと連携する

  • UnipadとNode.jsサーバーの接続を行うためのチュートリアルです。
  • Node.jsおよびnpmの環境は既にインストール済みの前提となります。
  • 動作確認環境は CentOS6 + Node.js v0.12.7 + Unipad 1.2 となります。

1. テストプロジェクト用のフォルダを作成し、その中へ移動

(コンソールで実行してください)

$ mkdir sample
$ cd sample

2. socket.ioモジュールのインストール

$ npm install socket.io

3.以下のコードをapp.jsとして保存してください。

var io = require('socket.io')({
transports: ['websocket'],
});

io.attach(6666);

io.on('connection', function(socket){
    socket.on("disconnect", function () {
      console.log("offline id: " + socket.id);
      socket.broadcast.emit("offline", { id: socket.id });
      padDisconnect(socket.id);
      });
    socket.on("/hello",function(obj){
      console.log("receive hello");
      padConnect(socket.id);
      socket.emit("/config/type", { value: 2 });

      });
    socket.on("/touch/start"         ,function(obj){ padState(socket.id,"/touch/start"       ,obj); });
    socket.on("/touch/repeat"        ,function(obj){ padState(socket.id,"/touch/repeat"      ,obj); });
    socket.on("/touch/pos"           ,function(obj){ padState(socket.id,"/touch/pos"         ,obj); });
    socket.on("/touch/end"           ,function(obj){ padState(socket.id,"/touch/end"         ,obj); });
    socket.on("/sensor/gyroUnbiased" ,function(obj){ padState(socket.id,"/sensor/gyroUnbiased"   ,obj); });
    socket.on("/sensor/gyroAttitude" ,function(obj){ padState(socket.id,"/sensor/gyroAttitude"   ,obj); });
    socket.on("/sensor/attitude"     ,function(obj){ padState(socket.id,"/sensor/attitude"       ,obj); });
    socket.on("/dialog/clicked"      ,function(obj){ padState(socket.id,"/dialog/clicked"        ,obj); });

});


function padState(index, obj){
  console.log( index + ":" + obj + " " +obj);
  io.sockets.emit("padstate", {index:index,value: obj});

}

function padConnect(id){
  console.log("padconnct" + id);
  io.sockets.emit("padconnect", {id:id});
}

function padDisconnect(id){

  console.log("paddisconnct" + id);
  io.sockets.emit("paddisconnect", {id:id});

}

4.node.js でapp.jsを起動してください。

$ node apps.js

5.Unipadを起動して、「新しい接続」から以下の内容を指定して、接続を行ってください。

項目 入力内容
Name ※任意の名前 履歴画面で表示されます
Host node.jsが動いているサーバーのホスト名もしくは、IPアドレス
Port 6666
Prtcl SOCKETIO

6.動作確認

  • 接続が正常に行われると、Padtypeが自動的にTouchPadに切り替わります。
  • TouchPadおよびボタンをタップすると、コンソールにUnipadが送信した内容の一部が表示されます。
  • Unipad のmenuから「入力パッド変更」を選択すると、パッドタイプを切り替えて利用できます。
  • Node.jsを停止する場合はCtrl+Cなどを押してください。

Clone this wiki locally