Skip to main content

4 posts tagged with "Adobe AIR"

View All Tags

AIR: Webサーバ、Socketの接続状況を検知 - URLMonitor、SocketMonitorクラス

· 2 min read
Yu Sasaki
Enterprise Security Manager / Advisor

任意のアドレスのWebサイト[サービス]のネットワーク状況を検知するURLMonitorと、任意のサーバ+ポートに接続可能か否かを検知するSocketMonitorクラスの動作サンプルを下記に示します。

ソースコード

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
applicationComplete="startup()">
<mx:Script>
<![CDATA[
import air.net.SocketMonitor
import air.net.URLMonitor;
import flash.net.URLRequest;
import flash.events.StatusEvent;
private var SERVER_URL:String = "http://www.yukun.info/";
private var SOCK_ADRR:String = "yukun.info";
private var PORT:int = 6667;
private var INTERVAL_TIME:int = 3000; // ms
private var serviceMonitor:URLMonitor = null;
private var socketMonitor:SocketMonitor = null;
private function startup():void {
var endpoint:URLRequest = new URLRequest(SERVER_URL);
serviceMonitor = new URLMonitor(endpoint);
serviceMonitor.addEventListener(StatusEvent.STATUS, onStatusEvent);
serviceMonitor.pollInterval = INTERVAL_TIME;
serviceMonitor.start();
socketMonitor = new SocketMonitor(SOCK_ADRR, PORT);
socketMonitor.addEventListener(StatusEvent.STATUS, onSocketStatusChange);
socketMonitor.pollInterval = INTERVAL_TIME;
socketMonitor.start();
}
// ネットワークサービスの状態の検知
private function onStatusEvent(e:StatusEvent):void {
var date:Date = new Date();
trace(date.toLocaleTimeString());
trace(SERVER_URL + "に" + (serviceMonitor.available ? "接続可" : "切断中"));
}
private function onSocketStatusChange(e:StatusEvent):void {
trace(SOCK_ADRR + "のポート" + PORT + "は" +
(socketMonitor.available ? "接続可" : "切断中"));
}
]]]]><![CDATA[>
</mx:Script>
</mx:WindowedApplication>

実行結果

http://www.yukun.info/に接続可
yukun.infoのポート6667は切断中

URLMonitorはネットワーク状況を検知する為にサーバへGETリクエストを送出して、レスポンスのステイタスコードを確認して判断しているようです↓。

リファレンス

  • URLMonitor - ActionScript 3.0 言語およびコンポーネントリファレンス
  • Adobe AIR 1.1 * ネットワーク接続の監視

AIR: SQLiteでデータの挿入と検索 - SQLConnection、SQLStatementクラス

· 3 min read
Yu Sasaki
Enterprise Security Manager / Advisor

AIRアプリケーションからSQLiteのDBにアクセスするには主にSQLConnectionとSQLStatementクラスを用います。基本的な処理の流れは、

  1. SQLConnection#openAsync(<Fileオブジェクト>, <モード>)でDBに接続
  2. SQLStatement#textプロパティにSQL文を代入しexecute()で実行
  3. その際、フィールド値はSQLStatement#parameters["@<定義されたパラメータ>"]で代入する
  4. SELECT文の検索結果データははSQLStatement#getResult()で取得
  5. 結果データの型はSQLResultで、データそのものはdataプロパティ(Array型)に入っている。e.g. <SQLResult>.data[i].<フィールド名>

下のプログラムはDBに接続してテーブルの作成、レコードの追加、検索を行うサンプルです。