我正在尝试管理少量用户控制的网页

时间:2014-10-10 17:16:07

标签: javascript sql-server database sqlite raspberry-pi

首先,我有一个覆盆子pi,在拱门上运行一个lighttp服务器。我有一个网页,一次最多可连接10个人。每个用户都将获得标签" Master,"或者"观察者。"该网页将拥有只有" Master,"可以使用。

只是抬头:我只是在学习大部分知识,所以我可能会犯一些关于如何实现这个目标的错误。

我最初的想法如下。当用户连接到数据库时,他们的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标记为Controller的观察者。从那里,服务器将根据用户的标记方式对每个查看网页的人进行不同的处理。

我最初的计划是使用像SQLite这样的轻量级数据库,但正如我发现的那样,SQLite仅供本地使用。我需要在低于10个连接的服务器上执行此操作。

我希望有人有一个建议或一个例子来解决这个问题。

2 个答案:

答案 0 :(得分:1)

目前,在网页上运行javascript以与服务器通信的最常见方式是某种RESTful Web服务。

您希望找到在Pi上运行的服务器端编程语言。也许node.js?它就像javascript但在服务器上,请看这里:http://weworkweplay.com/play/raspberry-pi-nodejs/

然后,您可以在服务器端语言中编写所需的任何方法,与数据库通信的方法,然后让客户端javascript调用这些方法。 Google&#34; REST服务node.js&#34;而且你会找到很多的方法。

答案 1 :(得分:0)

如果SQLite数据库在服务器上运行,并且此代码在用户的浏览器中运行,则它无法连接到数据库。浏览器和服务器之间唯一的交互是HTTP,除非您的服务器中存在巨大的安全漏洞。