2016-06-15 9 views
1

私は今何か作業中です。私はコントロールを持つ3つの球(デスクトップ上の "HTML1")を持っています。 (THREE.OrbitControls)コンピュータとタブレットの両方でうまくいきます。私がしたいのは、私のipadを通して球をコントロールすることです、私は私のipadで実行されているHTMLファイル( "HTML2")に空のシーンをロードしました。その空白の3つの球にも制御機能があり、デスクトップ球(「HTML1」)に送信するはずのサーバ(socket.io)に送信します。Socket.io with Three.js Sphere(OrbitControls)

マイサーバー:(サーバーがタブレットから取得しますが、送信しない(またはデスクトップを受信して​​いません)

io.on('connection', function(socket){ 
socket.on('cameraControls', function(controls){ 
     socket.emit('sendControls', function(controls) { 
     console.log('Controls'); 
     }); 
    }); 
    console.log('a user connected'); 
}); 

のiPad(「HTML2は」()関数でロードされたレンダリング)を送るもの:

デスクトップ球が受け取る何
socket.emit('cameraControls', function(controls){}); 

(も機能にロードされたレンダリング):

socket.on('sendControls', function(controls){ 
     //this.controls = controls; 
     console.log("got EVENT"); 
}); 

任意のIDイージー? socket.ioで初めての作業です。ターミナルやコンソールログにエラーはないので、何が間違っているのか分かりません。イベントを放出するときは、オブジェクトを渡す必要があります

答えて

1

socket.emit('cameraControls', {controls: controls}); 

をデスクトップに制御情報を渡すには、サーバーのコードは次のようになります。

io.on('connection', function(socket){ 
    socket.on('cameraControls', function(data){ 
     socket.emit('sendControls', {controls: data.controls}); 
    }); 
    console.log('a user connected'); 
}); 

、その後、デスクトップのイベントリスナーであなた次のようなコントロールにアクセスできます:

socket.on('sendControls', function(data){ 
    // this.controls = data.controls 
    console.log("got EVENT"); 
}); 
関連する問題