2016-06-15 7 views
1

Ich arbeite gerade an etwas und ich kann es nicht funktionieren lassen. Ich habe eine Three.js-Sphäre ("HTML1" auf dem Desktop) mit Steuerelementen. (THREE.OrbitControls) Das funktioniert sowohl auf dem Computer als auch auf dem Tablet. Was ich tun möchte, ist, diese Sphäre über mein iPad zu kontrollieren, also habe ich eine leere Szene in eine HTML-Datei ("HTML2") geladen, die auf meinem iPad läuft. Diese leere drei js Kugel hat auch die Kontrollfunktion, die ich an den Server (socket.io) senden möchte, der sie an die Desktop Sphere ("HTML1") senden soll.Socket.io mit Three.js Sphere (OrbitControls)

Mein Server: (Der Server wird aus dem Tablet bekommen, aber nicht zu senden (oder die Desktop-Empfang nicht)

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

Was das iPad ("HTML2") sendet (geladen in Funktion Render):

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

Was die Desktop-Sphere (auch in Funktion machen geladen) empfängt:

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

Beliebig id eas? Ich arbeite zum ersten Mal mit socket.io. Es gibt keine Fehler im Terminal oder im Konsolenprotokoll, daher bin ich mir nicht sicher, was ich falsch mache.

Antwort

1

sollten Sie ein Objekt übergeben, wenn ein Ereignis emittierenden:

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

die Steuerinformationen auf dem Desktop zu übergeben, der Code-Server sollte sein:

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

dann in Event-Listener Ihrem Desktop auf das Sie kann auf die Kontrollen wie folgt zugreifen:

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