使用 Firefox OS 作为网络服务器
Use Firefox OS as web server
对于一个艺术项目,我想要有多个可以输出声音的分布式设备。 Firefox OS 设备似乎是最佳选择。他们带来了必要的硬件,我非常了解 HTML 和 JS。但我还需要一个控制网络服务器。
据我了解,Firefox OS 设备可以充当 WiFi 接入点 ("Share Internet")。但是,它不能充当加入网络的其他设备的小型网络服务器——没有任何互联网连接。本机应用程序的 API 似乎还不够强大。
但也许我错了(我愿意)。那么,Firefox OS 设备是否能够 运行 作为小型 Web 服务器?
你应该试试 httpd.js。此库适用于 FirefoxOS 2.0。
// create a server object
server = new HttpServer();
// configure /sdcard/public as document root
server.get("/", "/sdcard/public");
// launch on port 3000
server.start(3000);
我认为你不需要服务器来完成这个任务,你可以用WebRTC做主从通信并处理声音客户端的执行。
httpd.js 对我来说不是开箱即用的。但它让我走上了正确的轨道。然后我找到了 this,在对代码进行了一些调整和更新之后,我得到了一个超级简单的服务器解决方案。
function startListen(){
console.log("Initializing server");
var socketServer = navigator.mozTCPSocket.listen(8080);
socketServer.onconnect = function(conn){
console.log("connected", conn, conn.ondata);
conn.ondata = function(ev){
console.log("Got request: ", ev);
conn.send("Ok. Got client on port " + conn.port);
conn.close();
};
conn.onclose = function(ev){
console.log("Client left:", ev);
}
};
socketServer.onerror = function(ev){
console.log("Failed to start: ", ev);
};
}
startListen();
需要 tcp-socket
许可。
使用此代码,我能够在 Firefox OS 模拟器中启动它,指示我的浏览器打开 http://localhost:8080 并获得答案并在控制台中登录。
PS。这也适用于真实设备。不幸的是,需要一个单独的接入点。虽然 Firefox OS 本身可以作为热点工作,但在该模式下它既不能作为客户端也不能作为服务器(传出连接未正确路由并且传入连接被拒绝)。
我最近在 Mozilla Hacks 博客上写了一篇文章来演示如何实现它:
对于一个艺术项目,我想要有多个可以输出声音的分布式设备。 Firefox OS 设备似乎是最佳选择。他们带来了必要的硬件,我非常了解 HTML 和 JS。但我还需要一个控制网络服务器。
据我了解,Firefox OS 设备可以充当 WiFi 接入点 ("Share Internet")。但是,它不能充当加入网络的其他设备的小型网络服务器——没有任何互联网连接。本机应用程序的 API 似乎还不够强大。
但也许我错了(我愿意)。那么,Firefox OS 设备是否能够 运行 作为小型 Web 服务器?
你应该试试 httpd.js。此库适用于 FirefoxOS 2.0。
// create a server object
server = new HttpServer();
// configure /sdcard/public as document root
server.get("/", "/sdcard/public");
// launch on port 3000
server.start(3000);
我认为你不需要服务器来完成这个任务,你可以用WebRTC做主从通信并处理声音客户端的执行。
httpd.js 对我来说不是开箱即用的。但它让我走上了正确的轨道。然后我找到了 this,在对代码进行了一些调整和更新之后,我得到了一个超级简单的服务器解决方案。
function startListen(){
console.log("Initializing server");
var socketServer = navigator.mozTCPSocket.listen(8080);
socketServer.onconnect = function(conn){
console.log("connected", conn, conn.ondata);
conn.ondata = function(ev){
console.log("Got request: ", ev);
conn.send("Ok. Got client on port " + conn.port);
conn.close();
};
conn.onclose = function(ev){
console.log("Client left:", ev);
}
};
socketServer.onerror = function(ev){
console.log("Failed to start: ", ev);
};
}
startListen();
需要 tcp-socket
许可。
使用此代码,我能够在 Firefox OS 模拟器中启动它,指示我的浏览器打开 http://localhost:8080 并获得答案并在控制台中登录。
PS。这也适用于真实设备。不幸的是,需要一个单独的接入点。虽然 Firefox OS 本身可以作为热点工作,但在该模式下它既不能作为客户端也不能作为服务器(传出连接未正确路由并且传入连接被拒绝)。
我最近在 Mozilla Hacks 博客上写了一篇文章来演示如何实现它: