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()); }