在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)
* for Windows (VS2012+) and Visual C++ Redistributable

二, 在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,然后通过网页就可以浏览网页。

也可以参考文章 http://modernweb.com/2015/03/19/develop-an-ios-application-with-node-js-and-cordova/

时间: 2025-01-09 03:51:04

在iphone上构建nodejs服务器的相关文章

NodeJs+http+fs+request+cheerio 采集,保存数据,并在网页上展示(构建web服务器)

目的: 数据采集 写入本地文件备份 构建web服务器 将文件读取到网页中进行展示 目录结构: package.json文件中的内容与上一篇一样:NodeJs+Request+Cheerio 采集数据 request :https://github.com/request/request 使得请求变得更容易,简单 cheerio:https://github.com/cheeriojs/cheerio 用来解析dom结构,类似jQuery,挺好用 app.js文件: /** * 数据采集 * 写入

在CentOS 7上构建RAID5、LVM和SAMBA服务器(5)——架设SAMBA服务器

在CentOS 7上构建RAID5.LVM和SAMBA服务器(5)--架设SAMBA服务器 6. 架设SAMBA服务器 6.1. 预备 本节的任务是配置SAMBA服务,共享/home/shared目录,使指定的Windows用户可以远程访问该共享. 首先要在CentOS上运行yum命令安装SAMBA服务: yum install samba 安装之后,执行systemctl命令来启动smb和nmb两个samba的守护进程. 图37 启动SAMBA 6.2. 修改smb.conf文件 修改/etc

Citrix Synergy 2014:在HP Moonshot服务器上构建XenDesktop

今天想和大家分享一下Citrix Synergy 2014昨天的大会上HP发布的一个技术亮点:HP Moonshot CS100 for XenDesktop服务器.这东东可是个很有创新的技术,不得不介绍一下. 我记得第一天的Keynote中,Citrix全球总裁兼CEO Mark T就提出了一个新的名词:Software Defined Workspace,我们姑且把它翻译成软件定义工作空间吧,它将移动办公所能涉及到的人.业务.应用.数据.桌面整合起来,实现工作负载的变革.工作人员的参与互动以

Linux上构建一个RADIUS服务器详解

作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息.但是网络设备通常只支持有限的用户管理功能.学习如何使用Linux上的一个外部RADIUS服务器来验证用户,具体来说是通过一个LDAP服务器进行验证,可以集中放置存储在LDAP服务器上并且由RADIUS服务器进行验证的用户信息,从而既可以减少用户管理上的管理开销,又可以使远程登录过程更加安全.数据安全作为现代系统中网络安全的一部分,与系统安全一样的重要,所以保护数据--确保提供机密性.完整性和可用性--对管理员来说至关重要

Linux服务篇之四:构建MySQL服务器

Linux服务篇之四:构建MySQL服务器  MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司, 目前属于Oracle公司,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库. 对应目前主流的LAMP架构来说,Mysql更是得到各位IT运维.DBA的青睐,目前mysql已被orcacle收购,不过好消息是原来mysql创始

在mac上安装nodejs

文章转载自我的个人博客  www.iwangzheng.com node.js最初是2009年发布的,目标是为聊实现事件驱动和非阻塞I/O的web服务器,应用的场景非常的广泛,有web服务器.实时应用.分布式应用.游戏.一些工具中,它是基于Chrome的V8引擎开发的.大家可以在github上找到开源代码: http://github.com/joyent/node. 之前用的电脑是windows系统的,现在换了mac之后需要在mac上重新安装下,let's start now ? git cl

详解Linux 6&7上搭建DNS服务器

整个hteret大家庭中连接了数以亿计的服务器个人主机,其中大部分的网站,部件等服务器都使用了域名形式的地址,如www.google.com.mail 163.com 等.很显然这种地址形式要比使月01231317202103 7A 的户地址形式更加直观而且更容易被用户记住. DNS系统在网络中的 作用处是维护着一个地址数现连,其中记录了各种主机城名与户地址的技关系上内便光安户租序现供正向的地址解析服务正向解析根据域名查IP 地址即将指定的域名解析为相对应的P地址,域名的正向解 析是DNS服务器

龙芯GO!龙芯平台上构建Go语言环境指南

龙芯软件生态系列——龙芯GO!龙芯平台上构建Go语言环境指南2016-07-05 龙芯中科1初识Go语言Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Griesemer.KenThompson和Rob Pike等世界顶尖计算科学家精心打造的系统编程语言.Go语言最显著的特点是编码简洁迅速.支持高效并发和自动内存管理等.此外,Go语言还面向网络服务器.存储系统和数据库等领域的编程进行了优化设计,并且简化了应用系统的安装和部署.因此,Go语言受到了广大程序员的

构建nfs 服务器

构建nfs  服务器 首先准备两个虚拟机,一个为客户端.一个为服务器. 服务器:192.168.2.125 客户端:192.168.2.120 在实验前,把防火墙(iptables),selinux,关闭否. 首先在服务器上: Selinux:getengorce   (查看状态) Enforcing为开启 其他为默认关闭 防火墙(iptables):即时生效 Service iptables start   (开启) Service iptables  stop   (关闭) #yum ins