Home  >  Article  >  Web Front-end  >  Steps and methods to build nodejs server on iPhone_node.js

Steps and methods to build nodejs server on iPhone_node.js

WBOY
WBOYOriginal
2016-05-16 15:51:203365browse

1. To run on ios, compile jxcore

Copy code The code is as follows:

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


Copy code The code is as follows:

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

If there is a problem with import which module not found, then install python which

through the following statement

Copy code The code is as follows:

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

If other problems occur, you can 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 code The 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 code The code is as follows:

$ ./configure
$ sudo make install

3. Create the cordova program. If cordova is not installed, you can install it yourself.

Copy code The code is as follows:

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

4. Download and install the jxcore-cordova plug-in

Copy code The code is as follows:

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

Using jxcore-cordova’s template index.html
Copy code The code is as follows:

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

Copy the jxcore package compiled for running on ios in the first step
Copy code The code is as follows:

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

5. Add cordova’s ios platform
Copy code The code is as follows:

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

If the build error occurs, "C does not support default arguments"

Just removing the default value will usually solve the problem.

will

Copy code The code is as follows:

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

Modify to
Copy code The code is as follows:

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

Just rebuild

6. You should be able to see the cordova running interface at this time.
7. Add nodejs server in Resources/jxcore_app/app.js

Add the following code at the end of app.js

Copy code The 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 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/');


Run the program, you can see the iPhone's IP in the xcode log information, and then you can browse the web through the web page.
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn