templates/as3/org/rubyforge/dango/DangoClientFramework.as in dango_generator-0.2.4 vs templates/as3/org/rubyforge/dango/DangoClientFramework.as in dango_generator-0.2.5
- old
+ new
@@ -46,10 +46,12 @@
private var recv_timer_msec:uint; // 受信用タイマーの実行間隔
private var recv_timer:Timer; // 受信用タイマーの追加
private var recv_last_date:Date = new Date(); // 受信用処理落ちチェック用
+ public var server_time:String = ""; // サーバーの時計
+
// private var server_host:String = "172.31.1.74";
// private var server_host:String = "localhost";
// private var server_port:int = 15000;
private var server_host:String;
private var server_port:int;
@@ -258,11 +260,11 @@
* @return void
*/
public function recv_callback(evt:TimerEvent):void {
// if(is_debug){ trace("DangoClientFramework:recv_callback:" + DangoUtil.now2str()); }
- // 前回から時間がかかりすぎている(処理落ち仕掛けている場合は)スキップ
+ // 前回から時間がかかりすぎている(処理落ちしかけている場合は)スキップ
var start_date:Date = new Date();
// if(is_debug){ trace("DangoClientFramework:recv_last_date.time=" + recv_last_date.time + " start_date.time=" + start_date.time); }
if(recv_last_date.time > start_date.time - (recv_timer_msec * 1.5)){
if(receive_cache.length > 0){
// while(receive_cache.length > 0){
@@ -271,23 +273,21 @@
var byte_array:ByteArray = arr[0];
var recv_c:uint = arr[1];
if(is_debug){ trace("DangoClientFramework:recv_c=" + recv_c); }
var receive_data:Array = this.receive_notice(byte_array);
- if(recv_not_yet_size == 0){ // 未受信データが無ければ
- if(receive_data != []){ // データが空なら無視する
+ if(recv_not_yet_size == 0){ // 未受信データが無ければ、ひとつのデータ受信が完了とみなす
+ if(receive_data != []){ // データが空じゃなければ処理開始
for(var i:uint = 0; i < receive_data.length; i++){
var notice_name:String = receive_data[i]["notice"];
+ server_time = receive_data[i]["server_time"];
if(notice_name == "_notice_sid"){ // 接続直後のsid通知なら
this.sid = receive_data[i]["_sid"];
- if(is_debug){ trace("DangoClientFramework:this.sid=" + this.sid + " recv_c:" + recv_c); }
+ if(is_debug){ trace("DangoClientFramework:this.sid=" + this.sid + " recv_c:" + recv_c + " server_time:" + server_time); }
- } else if(notice_name == "_heart_beat"){ // heart beat通知なら
- if(is_debug){ trace("DangoClientFramework:_heart_beat: recv_c:" + recv_c); }
-
} else { // 通常のデータならイベント発生
- if(is_debug){ trace("DangoClientFramework:dispatchEvent:dango_" + notice_name + ": recv_c:" + recv_c + ":" + i); }
+ if(is_debug){ trace("DangoClientFramework:dispatchEvent:dango_" + notice_name + ": recv_c:" + recv_c + ":" + i + " server_time:" + server_time); }
this.dispatchEvent(new DangoReceiveEvent("dango_" + notice_name, receive_data[i]));
}
}
} else { // データが空なら
// if(is_debug){ trace("DangoClientFramework:receive_data is empty." + DangoUtil.now2str()); }