Feature TOP Build

使い方

CHMPX Node.jsをビルドした後で、動作確認をしてみます。

1. 実行環境の構築

まず、実行環境を構築します。
構築は、パッケージから構築する方法と、chmpx nodejs addonライブラリをビルドして利用する方法があります。

1.1 パッケージを利用して環境を構築

パッケージを利用して実行環境を構築する方法を説明します。
chmpx nodejs addonライブラリのパッケージは、npmにあります。

このパッケージをインストールする前に、CHMPXの開発者パッケージが必要となりますので、CHMPXのドキュメントを参照してください。
CHMPXをインストールする方法も、パッケージからのインストールと、CHMPXを自身でビルドする方法がありますので、使い方もしくはビルドのドキュメントを参照してください。

事前にCHMPXをインストールした後、chmpx nodejs addonライブラリのnpmパッケージは、以下のようにインストールします。
npmコマンドの詳細についてはこちらを参照してください。

$ npm install chmpx

1.2 ビルドして環境を構築

ソースコードからchmpx nodejs addonライブラリをビルドすることができます。
ソースコードのgithubリポジトリをcloneし、ビルドする方法はこちらを参照してください。

2. CHMPXプロセス起動

ここでは、CHMPXプロセスの起動を簡単に説明します。
CHMPXプログラムの起動に必要となる設定ファイルは、testディレクトリにあるファイル(*.ini)を使うことができます。
CHMPXプロセスの起動方法の詳細については、こちらを参照してください。

2-1. CHMPXサーバノード起動

$ chmpx -conf chmpx_server.ini

2-2. CHMPXスレーブノード起動

$ chmpx -conf chmpx_slave.ini

3. サンプル

サンプルとして、CHMPXのサーバーノード、スレーブノードのそれぞれでCHMPX Node.jsライブラリを使って通信する部分を以下に示します。

3-1. サーバーノード上で動作するクライアント

var chmpxnode      = require('chmpx');
var chmpxserverobj = new chmpxnode();

if(!chmpxserverobj.initializeOnServer('chmpx_server.ini', true)){
	console.log('[ERROR] Failed to initialize chmpx nodejs on server node, get false from initializeOnServer');
	process.exit(1);
}

while(true){
	var outarr = new Array();

	//
	// Receive message
	//
	if(!chmpxserverobj.receive(outarr, -1)){								// wait
		console.log("[ERROR] failed to receive data on server process.");
		process.exit(1);
	}
	if(0 == outarr[1].length){
		continue;
	}

	var receive_str = outarr[1].toString();
	console.log("-->Receive = \"%s\"(utf8)",	receive_str);
	console.log("-->Receive = %s(hex)",			outarr[1].toString('hex'));

	if(receive_str == "BREAK TEST"){
		break;
	}
	var replydata = new Buffer('Reply(' + receive_str + ')');

	//
	// Reply message
	//
	result = chmpxserverobj.reply(outarr[0], replydata);

	console.log("<--Reply = \"%s\" : %s", 		replydata, result);
}

delete chmpxserverobj;
chmpxserverobj = null;

process.exit(0);

3-2. スレーブノード上で動作するクライアント

var chmpxnode     = require('chmpx');
var chmpxslaveobj = new chmpxnode();

if(!chmpxslaveobj.initializeOnSlave('chmpx_slave.ini', true)){
	console.log('[ERROR] Failed to initialize chmpx nodejs on slave node, get false from InitializeOnSlave');
	process.exit(1);
}

//
// Open msgid for slave process
//
var msgid  = chmpxslaveobj.open();

//
// Send one message
//
var result = chmpxslaveobj.send(msgid, 'TEST MESSAGE');
if(-1 == result){
	console.log('[ERROR] - [msgid:%s][data:%s] Result : false', msgid.toString('hex'), data.toString('hex'));
	return false;
}
console.log('<--- %s(hex) : %s', msgid.toString('hex'), result);

//
// Receive reply message
//
var buffarr = new Array();
result = chmpxslaveobj.receive(msgid, buffarr, 1000);

console.log('---> Receive(%s(hex)) : %s', msgid.toString('hex'), result);
console.log('     buf array length = ' + buffarr.length);

//
// Close msgid
//
if(false === chmpxslaveobj.close(msgid)){
	console.log('[ERROR] Close(msgid): failed to close msgid.');
	process.exit(1);
}

delete chmpxslaveobj;
chmpxslaveobj = null;

process.exit(0);

4. ロード・実行

基本として、JavaScript言語でライブラリを読み込むためのrequireでCHMPX Node.js アドオンライブラリを読み込みます。
その後は、CHMPX Node.js アドオンライブラリが提供するクラス・関数・メソッドを呼び出してください。
具体的には、環境や言語(TypeScriptなど)に応じて利用してください。

5. その他のテスト

CHMPX Node.jsでは、MochaChaiを使ったテストを実行できます。
以下のようにnpmコマンドを使い、作成したCHMPX Node.jsをテストすることができます。

$ npm run test
Feature TOP Build