2016-07-22 13 views
2

Dies ist mein erster Beitrag auf Stackoverflow, also bitte verzeihen Sie mir, wenn ich Post schon existiere. Ich bin ein bisschen neu in HTML und .js, "kenne Basics Guy".Node.js Server, der dieselbe Funktion wie mobiles Gerät auf Browser

Ich habe eine mobile App auf dem Tablet, die Kisok-Modus Browser hat und ich verwende es, um eine Verbindung zu meinem NodeJS Server auf RPI (funktioniert). Ich habe viele HTML- und .js-Dateien bereits in meinem Projekt.

Was ich versuche herauszufinden:

  1. Ist es möglich, neue separate HTML oder JS-Datei zu machen, die so etwas wie Fernbedienung mit meinem Tablet-Server tun würden. Beispiel - Wenn ich auf einen Button klicke, wird der gleiche Button im RPI auf den Browser geklickt, weil ich ein anderes Display auf RPI habe, das dasselbe zeigt und ich würde mein Tablet nur als HTML-Getter benutzen (damit ich es auf dem Tablet zeigen kann) und Eingabemethode für RPI. (Gleichzeitig auf beiden Display aber die Verwendung Tablette als Eingabe)

  2. oder aktualisieren, alle vorhandenen HTML und Js auf Server-Seite (schwerer Weg, wenn dieses Ding ist sogar posbile zu tun)

Thank you very viel für weitere Hilfe!

EXtra bearbeiten - Code

Hier ist der Server-Seite Code!

//var app = require('http').createServer(handler); 
 
//var express = require("express")(); 
 
var express = require("express"); 
 
//var app = require("express")(); 
 
var app = express(); 
 
var http = require("http").Server(app); 
 

 
var path = require("path"); 
 

 
//var io = require('socket.io')(app); 
 
var io = require('socket.io')(http); 
 
var SerialPort = require('serialport'); 
 

 

 
//previous was app.listen(3000); 
 
http.listen(3000); 
 

 
//Enabling CORS - for specific localhost port 
 
app.use(function (req, res, next){ 
 

 
\t res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080'); 
 
\t res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
 
\t res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 
 
\t res.setHeader('Access-Control-Allow-Credentials', true); 
 
\t 
 
\t next(); 
 
}); 
 

 
function handler(req, res){ 
 
    console.log(req, res); 
 
} 
 

 

 

 
    var serialPort = new SerialPort.SerialPort("/dev/ttyAMA0", { 
 
     baudrate: 9600, 
 
     dataBits: 8, 
 
     parity: "none", 
 
     stopBits: 1, 
 
     flowControl: false 
 
    }); 
 

 
    var counter = 0; 
 

 
    serialPort.on("open", function() { 
 
     console.log("open"); 
 
     var service = new Service(); 
 

 
     serialPort.on("data", function (data) { 
 
      var hexData = data.toString('hex'); 
 
      console.log(data, hexData); 
 
      io.emit('hit', data); 
 
     }); 
 
    }); 
 

 

 
io.on('connection', function(socket){ 
 
    console.log('Connected'); 
 
\t 
 
\t //nsmrcek - custom code for accepting data from client side 
 
\t socket.on("message1",function(data){ 
 

 
\t }); 
 
\t socket.on("message2",function(data){ 
 

 
\t }); 
 
\t socket.on("message3",function(data){ 
 

 
\t }); 
 
\t socket.on("message4", function(data){ 
 

 
\t }); 
 
\t socket.on("message5", function(data){ 
 

 
\t }); 
 

 
}); 
 

 

 

 

 
app.use(express.static(path.join(__dirname, '/'))); 
 

 
//app.use('/js', express.static(path.join(__dirname, 
 

 
app.get("/home",function(req,res,next){ 
 
\t //res.send("OK"); 
 
\t //if fails path incorrect 
 
\t res.sendFile(path.join(__dirname + "/index.html")); 
 
\t //res.render("index.html"); 
 
}); 
 

 

 
function Service() { 
 
    this.mapCodeToHit = function (data) { 
 
"data send from little homemade CPU board via serial port to RPI server" }

Ich hoffe, dass dies genug Code, so dass Sie mich anweisen kann, wo mehr Code setzen klicken Sie auf Evry anderen Client zu simulieren, während die Taste der Kunden auf der einen Klick (alawys 2 Clients)

Antwort

1

Wenn Sie eine Websocket-Verbindung erstellt haben, die über Ihren Server lief und den aktualisierten Status der Schaltfläche an die verbundenen Clients weitergab, wäre dies sicherlich möglich. Ich kann keine detaillierte Antwort geben, ohne Ihren Code zu sehen, aber Sie könnten mit den socket.io-Dokumenten hier beginnen und weitere Fragen stellen, wenn Sie anfangen.

http://socket.io/

+0

ja, ich bin mit socket.io für taht, meine Frage ist nun, kann ich Tasten-ID von einem Browser erhalten und auf einen weiteren Klick simulieren (i alle Taste-IDs finden müssen, gibt es wie 100 Schaltflächen mit sehr viel Code in HTML und .js) oder wie Sie es gesagt haben, um den Aktualisierungsstatus der Schaltfläche an die verbundenen Clients zu senden. Es tut mir leid, aber ich kann hier nicht so viel Code schreiben (socket.io Version 1.4.5). Ich habe Engine für Spiel in .js, Hauptmenü, es sagt etwas über Node-Pushserver. Alles, was ich wissen muss, welchen Code für eine solche Situation zu verwenden, und ich werde finden, wo ich es (denke ich) setzen. Entschuldigung, dass wir nicht genauer sein werden – Avoid

+0

push.js in Frage – Avoid

+0

hinzugefügt server.js in Frage hinzugefügt – Avoid