2016-07-22 56 views
2

這是我在stackoverflow上的第一篇文章,所以請原諒我,如果我讓後期已經存在。我有點新到HTML和.js,「知道基礎的人」。Node.js服務器完成與瀏覽器上的移動設備相同的功能

我在有kisok模式瀏覽器的平板電腦上有一個移動應用程序,我正在使用它在RPI(作品)上連接到我的NodeJS服務器。我的項目中已經有很多HTML和.js文件。

我試圖找出:

  1. 是否有可能作出新的獨立的HTML或.js文件會做這樣的事情與我的平板電腦到服務器的遠程控制。例子 - 當我點擊一個按鈕時,在RPI上的瀏覽器上點擊相同的按鈕,因爲我在RPI上顯示了另一個單獨的顯示,顯示了相同的內容,我將我的平板電腦僅用作HTML的吸氣器(這樣我就可以在平板電腦上顯示它)和RPI的輸入方法。

  2. 或更新服務器端的所有現有的HTML和.js文件(兩者同時顯示,但使用平板電腦輸入)(上接難的方式,如果這件事情甚至posbile做)

非常感謝你多爲進一步的幫助!

額外編輯 - 代碼

這裏是服務器端代碼!

//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" }

我希望這是足夠的代碼,所以你可以教我在哪裏可以把更多的代碼模擬點擊埃夫裏的其他客戶端的同時單擊按鈕,在客戶端上的一個(alawys 2個客戶端)

回答

1

如果您創建了一個通過服務器運行的websocket連接,並將按鈕的更新狀態推送到連接的客戶端,這當然是可能的。我不能在沒有看到你的代碼的情況下給出詳細的答案,但你可以從這裏開始使用socket.io文檔,並在開始時詢問更多問題。

http://socket.io/

+0

是的,我使用taht socket.io,我的問題是,現在我可以從一個瀏覽器中得到的按鈕ID和模擬單擊另一個(我必須找到所有按鈕的ID,有喜歡100個按鈕以及HTML和.js中的大量代碼),或者您如何表示將按鈕的更新狀態推送到連接的客戶端。我很抱歉,但我不能把這麼多的代碼放在這裏(socket.io版本1.4.5)。我在.js主菜單中有遊戲引擎,它說了一些關於node-pushserver的內容。所有我需要知道什麼代碼用於這種情況,並通過時間,我會找到在哪裏(我認爲)。對不起,沒有更具體 – Avoid

+0

push.js增加了問題 – Avoid

+0

server.js增加了問題 – Avoid

相關問題