https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally表明three.js示例由本地服務器提供。 python SimpleHTTPServer對我來說工作正常,除了我需要在three.js存儲庫克隆中的示例目錄上方的目錄中運行它。httpServer在node.js中服務three.js
現在我想在node.js中使用httpServer來提供相同的示例。我可以使用SimpleHTTPServer的其中一個節點版本,但我需要一個httpServer對象通過socket.io將數據從服務器傳遞到webgl瀏覽器示例。所以我採用了socket.io示例,並嘗試使用以下server.js以使用以上目錄中的節點運行示例。
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs')
app.listen(8080);
function handler (req, res) {
fs.readFile(__dirname + '/examples/webgl_interactive_voxelpainter.html',
function (err, data) {
if (err) {
res.writeHead(500);
return res.end('Error loading html');
}
res.writeHead(200);
res.end(data);
});
}
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
網絡是在127.0.0.1:8080與節點我看不到three.js示例。即使我刪除了所有對socket.io的引用,代碼也不起作用,表明它是關於html的。
我在想什麼? HTML文件正在被正確讀取,因爲我沒有收到回調錯誤。
我注意到python服務器在瀏覽器中列出目錄爲html鏈接。我點擊例子來查看html文件,然後點擊html文件,它工作正常。所以我嘗試運行'node server.js'一個目錄級別,幾乎每個組合的前進和後退斜槓,根目錄引用......都無濟於事。
我沒有掛在純粹的httpServer上。如果快遞或其他東西適用於socket.io和three.js,我會登上那列火車。