U3D手记 不能直接打开WebGL打包的文件

      在自己的电脑上搭建一个服务器,有很多方法例如常用的iis、wasp,今天我来分析一下node.js服务器呢?理由一,node.js服务器有各种好处,包括单线程带来的性能优化,想了解深入推荐《 了不起的Node.js》,很多大公司已经开始使用部分node服务器;理由二,对于Unity程序员来说,基于ECMAScript衍生出的各种js技术都有很强的共同性,换句话说就是容易懂好上手,尤其是有JS基础的开发者,分享给大家。
    第一步:我们首先用Unity发布一个web包,因为最新的unity3d早已经不支持webplayer,这似乎也是未来浏览器"去插件化"的趋势,这里我打包一个WebGL测试版放在碗里备用,如下图

    第二步:我们编写Node.js服务器文件Cart.js,首先我们导入联网模块模块、IO模块等等,其中的./mine代表导入一个定义在根目录的mine模块,里面是输出类型类似与IIS服务器的MIME配置。

var http = require('http');
var url = require('url');
var fs = require('fs');
var mine = require('./mine').types;//
var path = require('path');

    第三步:http模块导入之后,直接http.createServer就很容易创建一个服务器代码如下:

var server = http.createServer(function (request, response)
{
    var pathname = url.parse(request.url).pathname;    
});
server.listen(3000);

 


     第四部:创建路由,用正则表达式让URL正确的指向目标

 

    //路由
    if (pathname == "/") {
        file('index.html');
    }
    else {
        file(pathname.replace("/", ""));
    }

 

 

 

 

 

 

第五步:读取文件,并response

function file(filepath) {
    var ext = path.extname(filepath);
    ext = ext ? ext.slice(1) : 'unknown';
    fs.exists(filepath, function (exists)
    {
        if (!exists)
        {
            response.writeHead(404, {
                'Content-Type': 'text/plain'
            });
            response.write("This request URL " + pathname + " was not found on this server.");
            response.end();
        }
        else {
            fs.readFile(filepath, "binary", function (err, file) {
                if (err) {
                    response.writeHead(500, {
                        'Content-Type': 'text/plain'
                    });
                    response.end(err);
                } else {
                    var contentType = mine[ext] || "text/plain";
                    response.writeHead(200, {
                        'Content-Type': contentType
                    });
                    response.write(file, 'binary');
                    response.end();
                }
            });
        }
    });
}

完成,是不是挺简单,第六步:我们先把WebGL文件放在Node.js服务器里,再来运行服务器:①打开node.js的根目录,按住键盘Shift键,在目录空白处点击右键,②在弹出的菜单里点击“在此处打开命令窗口",③之后再打开的命令窗口中输入:node Cart(注:Cart.js是服务器文件名,后缀可省略)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值