Home
概要
チュートリアル

リンク
Home > チュートリアル > XMLデータを利用した通信1

XMLデータを利用した通信1

XMLSocketの仕様では、通信データにXML形式を使用することになっています。またFlashは、XMLを操作する機能をもっているため、XMLデータを容易に扱うことができます。この項ではScriptSockletで、簡単にXML操作を行う方法を紹介します。

XMLの生成と送信

ここでは最も基本的な操作であるXML文の生成とユーザーへの送信を行います。
ユーザー接続時に<CONNECT />というXML文を生成し、それを接続したユーザーに送信します。
//コード例 simplexml1.js

//gpssのSimpleXMLCreatorユーティリティークラスを
//変数XMLに割り当て
XML = Packages.jp.wda.gpss.util.SimpleXMLCreator;

function onConnect(client){
	//<CONNECT/>を生成
	var xml = new XML("CONNECT");
	
	//ユーザーに送信
	client.send(xml);
	
	//接続を継続
	return true;
}
simplexml1.jsをGPSS/scriptsディレクトリに保存し、複数のtestClient.swfでSocklet "simplexml1"に接続して、"<CONNECT />"が表示されていれば成功です。

・XML = Packages.jp.wda.gpss.util.SimpleXMLCreator;
JAVAのクラスは、"Packages."につづいて"JAVAパッケージ名.クラス名"をつなげることで利用します。
またクラス名を変数に割り当てることで、利用を容易に行うことができます。ここでは"XML = Packages.jp.wda.gpss.util.SimpleXMLCreator;"としています。それによりXMLという短い名前でSimpleXMLCreatorクラスを利用できるようにしています。
ここでは、このようにはじめに書くことでXMLオブジェクトが利用できるようになる、と単純に捕らえても良いでしょう。

・xml = new XML("CONNECT");
new SimpleXMLCreator("タグ名") とすることでXMLルートエレメントを生成します。その際エレメントのタグ名が、コンストラクタの引数の値に設定されます。この場合、上記のクラス割り当て処理を行ってあるため、new XML("タグ名")という簡素な記述が行えます。
生成したXMLオブジェクトはxml変数に割り当てています。


XMLの解析と操作

ここでは、ユーザーから送られたXMLを操作するのに必要な、XML文の解析と操作を行います。
ユーザーからデータが送られたときに、XML文を解析して、XMLタグ名を変更し、ユーザーに送り返します。送信されたXML文が、正常に解析できなかった場合は、接続を切断します。
//コード例 simplexml2.js

//gpssのSimpleXMLCreatorユーティリティークラスを
//変数XMLに割り当て
XML = Packages.jp.wda.gpss.util.SimpleXMLCreator;

function onCommand(client, Command){
	//ユーザーから送られたXMLを解析
	var xml = XML.parse(Command);
	
	//XMLを解析できなかった場合は切断
	if(xml == null){
		return false;
	}
	
	//ルートタグ名をRESPONSEに設定
	xml.setName("RESPONSE");
	//XML属性の設定(追加)ここでは from="server"
	xml.setAttribute("from", "server");
	
	//ユーザーに送信
	client.send(xml);
	
	//接続を継続
	return true;
}
・xml = XML.parse(Command);
XML文を解析して利用可能にするためには、SimpleXMLCreatorクラスのparse("XML文")メソッドを利用します。解析できた場合はSimpleXMLCreatorクラスによるXMLオブジェクトを返します。また解析に失敗した場合にはnullを返します。

・xml.setName("RESPONSE");
XMLタグのタグ名を変えるためにはsetName("タグ名")メソッドを利用します。

・xml.setAttribute("from", "server");
XML属性を設定・追加するためにはsetAttribute("属性名", "属性値")メソッドを利用します。


前へ|次へ

現在このサイトを 人の方がみています