gpt4 book ai didi

node.js - node.js 中的 httpServer 服务于 three.js

转载 作者:搜寻专家 更新时间:2023-10-31 23:55:52 27 4
gpt4 key购买 nike

https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally建议 three.js 示例由本地服务器提供。 python SimpleHTTPServer 对我来说工作正常,除了我需要在 three.js 存储库克隆中 examples 目录上方的目录中运行它。

现在我尝试在 node.js 中使用 httpServer 提供相同的示例。我可以使用 SimpleHTTPServer 的 Node 版本之一,但我需要一个 httpServer 对象通过 socket.io 将数据从服务器传递到 webgl 浏览器示例。因此,我采用了 socket.io 示例并尝试使用 examples 上方目录中的 Node 运行以下 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);
});
});

Net 是在 127.0.0.1:8080 Node 上我看不到 three.js 示例。即使我删除了所有对 socket.io 的引用,代码也不起作用,表明它与 html 有关。

  1. 我错过了什么?正在正确读取 html 文件,因为我没有收到回调错误。

  2. 我注意到 python 服务器在浏览器中将目录列为 html 链接。我点击 examples 查看 html 文件,然后点击 html 文件,一切正常。因此,我尝试在上一级目录运行“node server.js”,几乎所有正斜杠和反斜杠的组合、根目录引用……都无济于事。

  3. 我并没有沉迷于纯粹的 httpServer。如果 express 或其他东西适用于 socket.io 和 three.js,我会登上那列火车。

最佳答案

使用连接框架,让您的工作更轻松。

var connect = require('connect');

var app = connect()
.use(connect.static('<your directory>'))
.use(function(req, res){
res.end();
})
.listen(8080);

http://www.senchalabs.org/connect/

https://github.com/senchalabs/connect

关于node.js - node.js 中的 httpServer 服务于 three.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com