Step-by-step method for building a nodejs server on an iPhone, iPhone enodejs
1. Compile jxcore for running on ios
Copy codeThe Code is as follows:
$ Mkdir ~ /Jxcore
$ Cd ~ /Jxcore
$ Git clone https://github.com/jxcore/jxcore.git
Copy codeThe Code is as follows:
$ Cd ~ /Jxcore
$./Build_scripts/ios-compile.sh
If the module not found of import which occurs, use the following statement to install which of python.
Copy codeThe Code is as follows:
Sudo easy_install tools/which-1.1.0-py2.7.egg
If other problems occur, refer to the prerequisites for compiling ios with jxcore and take corresponding measures.
Https://github.com/jxcore/jxcore/blob/master/doc/HOW_TO_COMPILE.md
Copy codeThe Code is as follows:
* 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)
2. Install jxcore on mac
Copy codeThe Code is as follows:
$./Configure
$ Sudo make install
3. Create the cordova program. If cordova is not installed, install it on your own.
Copy codeThe Code is as follows:
$ Cordova create hello com. example. hello HelloWorld
$ Cd hello
4. download and install the jxcore-cordova plugin
Copy codeThe Code is as follows:
$ Git clone https://github.com/jxcore/jxcore-cordova
Use the template index.html of jxcore-cordovato
Copy codeThe Code is as follows:
$ Cp./jxcore-cordova/sample/www/index.html./www/
Copy the jxcore package compiled in step 1 for ios
Copy codeThe Code is as follows:
$ Cp-r ~ /Jxcore/out_ios/ios/bin jxcore-cordova/io. jxcore. node/
5. Add ios platform for cordova
Copy codeThe Code is as follows:
$ Cordova platforms add ios
$ Cordova plugin add jxcore-cordova/io. jxcore. node/
$ Cordova build
$ Cordova run ios
If a build error occurs, "C does not support default arguments"
You only need to remove the default value to solve the problem.
Set
Copy codeThe Code is as follows:
JXCORE_EXTERN (void)
JX_SetString (JXValue * value, const char * val, const int32_t length = 0 );
Change
Copy codeThe Code is as follows:
JXCORE_EXTERN (void)
JX_SetString (JXValue * value, const char * val, const int32_t length );
Re-build
6. You can see the running interface of cordova.
7. Add nodejs server in Resources/jxcore_app/app. js
Add the following code at the end of app. js:
Copy codeThe Code is as follows:
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 shoshould 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-");
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 /');
Run the program to view the iphone ip address in the xcode log information, and then browse the webpage through the webpage.