首页 > 语言 > JavaScript > 正文

iPhone手机上搭建nodejs服务器步骤方法

2024-05-06 16:22:44
字体:
来源:转载
供稿:网友
这篇文章主要介绍了iPhone手机上搭建nodejs服务器步骤方法,本文给出了详细的操作步骤以及操作命令,需要的朋友可以参考下
 

一、为在ios上面运行,编译jxcore

 

复制代码代码如下:

$ mkdir ~/jxcore  
$ cd ~/jxcore  
$ git clone https://github.com/jxcore/jxcore.git  

 

 

复制代码代码如下:

$ cd ~/jxcore/jxcore  
$ ./build_scripts/ios-compile.sh  

 

如果出现import which的module not found问题, 那就通过下面语句安装python的which

 

复制代码代码如下:

sudo easy_install tools/which-1.1.0-py2.7.egg  

 

如果出现别的问题,可以参看jxcore编译ios的前提条件,采取相应措施。
https://github.com/jxcore/jxcore/blob/master/doc/HOW_TO_COMPILE.md

 

复制代码代码如下:

* GCC 4.2 or newer (for SpiderMonkey builds 4.7+)  
* Python 2.6 or 2.7  
* GNU Make 3.81 or newer  
* libexecinfo (FreeBSD and OpenBSD only)  
* for SpiderMonkey : 'which' python module (sudo easy_install tools/which-1.1.0-py2.7.egg)  

 

二、 在mac上安装jxcore

复制代码代码如下:

$ ./configure  
$ sudo make install  

 

三、 创建cordova程序,如果没有安装cordova,可以自行安装。

复制代码代码如下:

$ cordova create hello com.example.hello HelloWorld  
$ cd hello  

 

四、下载安装jxcore-cordova插件

复制代码代码如下:

$ git clone https://github.com/jxcore/jxcore-cordova  

利用jxcore-cordova的模板index.html
复制代码代码如下:

$ cp ./jxcore-cordova/sample/www/index.html ./www/  

拷贝在第一步为在ios上运行而编译的jxcore包
复制代码代码如下:

$ cp -r ~/jxcore/jxcore/out_ios/ios/bin jxcore-cordova/io.jxcore.node/  

五、添加cordova的ios platform
复制代码代码如下:

$ cordova platforms add ios  
$ cordova plugin add jxcore-cordova/io.jxcore.node/  
$ cordova build  
$ cordova run ios  

如果build出错,"C does not support default arguments"

 

只需将默认值去掉一般就会解决问题。

 

复制代码代码如下:

JXCORE_EXTERN(void)  
JX_SetString(JXValue *value, const char *val, const int32_t length = 0);  

修改为
复制代码代码如下:

JXCORE_EXTERN(void)  
JX_SetString(JXValue *value, const char *val, const int32_t length);  

重新build即可

 

六、此时应该可以看到cordova的运行界面。
七、在Resources/jxcore_app/app.js添加nodejs server

在app.js的最后面添加如下代码

 

复制代码代码如下:

function getIP() {  
        var os = require('os');  
        var nets = os.networkInterfaces();  
        console.log(nets);  
        for ( var a in nets) {  
                var ifaces = nets[a];  
                for ( var o in ifaces) {  
                        if (ifaces[o].family == "IPv4" && !ifaces[o].internal) { return ifaces[o].address; }  
                }  
        }  
        return null;  
}  
var ip = getIP();  
if (!ip) {  
        console.error("You should connect to a network!");  
        return;  
}  
  
var http = require('http');  
http.createServer(function(req, res) {  
        res.writeHead(200, {  
                'Content-Type': 'text/plain'  
        });  
        var cur_client = "";  
        if(req.connection && req.connection.remoteAddress) {  
                console.log(req.connection.remoteAddress);  
                cur_client = req.connection.remoteAddress;  
        } else if(req.headers) {  
                console.log("request header X-Forwarded-For");  
                console.log(req.headers['X-Forwarded-For']);  
                cur_client = req.headers['X-Forwarded-For'];  
        }  
        cordova('log').call('client( ' + cur_client + ' ) come');  
        res.end('Hello '+ cur_client +', I am server on iphone app('+ ip +'). '+Date.now()+'/n');  
}).listen(1337, ip);  
console.log('Server running at http://' + ip + ':1337/');  

运行程序,即可在xcode的log信息里面看到iphone的ip,然后通过网页就可以浏览网页。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选