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


Posted in NodeJs onJuly 06, 2015

一、为在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,然后通过网页就可以浏览网页。
NodeJs 相关文章推荐
轻松创建nodejs服务器(4):路由
Dec 18 NodeJs
nodejs批量修改文件编码格式
Jan 22 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
nodejs初步体验篇
Nov 23 NodeJs
Nodejs Express4.x开发框架随手笔记
Nov 23 NodeJs
nodejs中使用HTTP分块响应和定时器示例代码
Mar 19 NodeJs
nodejs处理图片的中间件node-images详解
May 08 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
详解Nodejs内存治理
May 13 NodeJs
nodejs中各种加密算法的实现详解
Jul 11 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 #NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 #NodeJs
nodejs导出excel的方法
Jun 30 #NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 #NodeJs
使用nodejs开发cli项目实例
Jun 03 #NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 #NodeJs
nodejs实现获取某宝商品分类
May 28 #NodeJs
You might like
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
php文件上传的简单实例
2013/10/19 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
javascript操作html控件实例(javascript添加html)
2013/12/02 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
JS调用Android、Ios原生控件
2017/01/06 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
python安装Scrapy图文教程
2017/08/14 Python
python 动态加载的实现方法
2017/12/22 Python
python实现反转部分单向链表
2018/09/27 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
HTML5 层的叠加的实现
2020/07/07 HTML / CSS
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
Java的基础面试题附答案
2016/01/10 面试题
销售冠军获奖感言
2014/02/03 职场文书
美术教学感言
2014/02/22 职场文书
车辆工程专业求职信
2014/06/14 职场文书
介绍信格式
2015/01/30 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
Python OpenCV实现图形检测示例详解
2022/04/08 Python