2014-10-10 55 views
1

因此,首先,我有一個樹莓派,在拱門上運行lighttp服務器。我有一個網頁,一次最多可以連接10個人。每個用戶將被賦予標籤「主」或「觀察者」。該網頁將擁有隻有「主人」才能使用的控件。我想管理一個網頁的少量用戶控制

只是擡起頭來:我只是在學習大部分內容,所以我可能會在如何完成這個過程中犯一些錯誤。

我原來的想法是如下。當用戶連接到數據庫時,他們的IP地址將被抓取並插入SQLite數據庫,以及用戶標籤和連接時間。從那裏我可以在他們試圖執行各種命令時查詢數據庫中的用戶標記。

無論我使用什麼,都需要非常輕便,並且不會在用戶設備上存儲Cookie。

這是我現在使用的JavaScript,它可能不是最高效的,但我打算讓它工作,然後使它看起來不錯。

此代碼應該連接數據庫並插入用戶。

<script type="text/javascript" src="http://l2.io/ip.js?var=myip"></script> 
<script type="application/javascript"> 
    var db = openDatabase('userCon.contbl.sqlite', '1.0', 'contbl', 1024); 
    db.transaction(function(transaction) { 
     var ip = myip; 
     var conStatus = "master" 
     var date = new Date(); 
     console.log('Inserting into the database ' + ip + ',' + conStatus +',' + date); 
     transaction.executeSql('INSERT INTO contbl(ipAd, conType, lastActive) VALUES (?,?,?,?)',[ip,conStatus,date], function(transaction, results) { 

     }, function (transaction, err){ 
      console.log(err.message+":Error"); // here an error 
      }); 
    }); 
</script> 

<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"> </script> 

我無法連接到我的PI,其中我的研究後,可能是因爲SQLite的是應該在服務器本地,而不是運行創造了SQLite數據庫。

是否有某種方法可以指向pi上的SQLite數據庫,還是有更好的資源用於這種類型的任務嗎?

編輯:

我想我原來的帖子不夠具體。基本的想法是我需要能夠將一小部分信息從網頁傳遞迴託管它的服務器。即用戶連接到服務器併發送其IP,然後服務器將該IP標記爲控制器的觀察者。從那裏,服務器將根據用戶的標記方式,以不同方式查看網頁。

我原來的計劃是使用像SQLite這樣的非常輕量級的數據庫,但正如我發現的那樣,SQLite僅在本地使用。我需要在低於10個連接的服務器上執行此操作。

我的希望是有人有一個建議,或一個例子來解決這個問題。

回答

1

最近在網頁上運行javascript的最常用方式是與某個服務器交流,這是一種REST風格的Web服務。

你會想找到一個運行在Pi上的服務器端編程語言。也許node.js?這就像是JavaScript,但在服務器上,請參見:http://weworkweplay.com/play/raspberry-pi-nodejs/

然後,您可以使用服務器端語言編寫所需的任何方法,與數據庫交談的方法,然後讓客戶端JavaScript調用這些方法。谷歌「REST服務node.js」,你會發現很多方法。

0

如果SQLite數據庫正在服務器上運行,並且此代碼在用戶的瀏覽器中運行,它將無法連接到數據庫。瀏覽器和服務器之間的唯一交互是HTTP,除非服務器中存在巨大的安全漏洞。

+0

在我對SQLite進行了更多的研究之後,我提出了上述觀點。我正試圖找到一種方法來連接到服務器。服務器不會連接到互聯網,所以我不介意有幾個漏洞。 Pi正在託管自己的網絡接入點,因此如果您在網絡上,只能進入該頁面。 – 2014-10-10 17:31:23

相關問題