dango 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,7 @@
7
7
  require 'dango/server_framework'
8
8
 
9
9
  # require RAILS_ROOT + '/config/boot'
10
- require RAILS_ROOT + '/config/environment'
10
+ require RAILS_ROOT + '/config/environment'
11
11
 
12
12
  # 環境によるコンフィグ読み込み
13
13
  env = ENV['RAILS_ENV'] || 'development'
@@ -548,77 +548,80 @@ class DangoServerFramework
548
548
  send_obj_dup["notice"] = notice_name.to_s
549
549
 
550
550
  # データ送信時にクライアントからのレスポンスを確認する(Flashのバグらしきもの対策)
551
- if notice_name.to_s =~ /^return_/
552
- cs_send_data(sock, send_obj_dup, :type=>dtype) # データ送信
553
- cs_logger.debug "cs_server_send_data:finish send data notice_name=#{notice_name.inspect}\n"
554
- else
551
+ # if notice_name.to_s =~ /^return_/
552
+ # cs_send_data(sock, send_obj_dup, :type=>dtype) # データ送信
553
+ # cs_logger.debug "cs_server_send_data:finish send data notice_name=#{notice_name.inspect}\n"
554
+ # else
555
555
  Thread.start do
556
- mutex_socket_list.synchronize(session_id) do
557
- send_receive_shared[notice_name] = nil
558
-
559
- receive_thread = nil
560
- end_reserved_time = Time.now + timeout
561
-
562
- # 戻ってきたデータのチェック
563
- notice_name_sym = (notice_name.class == Symbol) ? (":"+notice_name.to_s) : ('"'+notice_name+'"')
564
- instance_method_name = "cs_receive_response_#{notice_name}"
565
- # cs_logger.debug "instance_eval notice_name_sym=" + notice_name_sym.inspect
566
- expr = <<-EOF
567
- def self.#{instance_method_name}(ret_obj)
568
- begin
569
- send_receive_shared[#{notice_name_sym}] = ret_obj
570
- rescue Exception
571
- cs_logger.debug "instance_eval Error=" + $!.class.to_s
572
- cs_logger.debug "instance_eval Error=" + $!.message.to_s
573
- cs_logger.debug "instance_eval Error=" + $!.backtrace.pretty_inspect
574
- end
575
- end
576
- cs_logger.debug "defined:#{instance_method_name}"
577
- EOF
578
- # cs_logger.debug "expr:#{expr.inspect}"
579
- # cs_logger.debug "send_receive_shared:#{self.send_receive_shared().inspect}"
580
- instance_eval expr
581
-
582
- # タイムアウトチェック
583
- (timeout.to_f / SendReceiveSleepIntervalSec).to_i.times do
584
- if Time.now > end_reserved_time
585
- cs_logger.debug "timeout:#{notice_name}"
586
- break
587
- # raise(DangoFrameworkTimeoutError, "timeout:#{notice_name}")
588
- end
556
+ begin
557
+ mutex_socket_list.synchronize(session_id) do
558
+ send_receive_shared[notice_name] = nil
589
559
 
590
- # 送信スレッドが開始していなければ開始
591
- if !receive_thread
592
- receive_thread = Thread.start do
560
+ receive_thread = nil
561
+ end_reserved_time = Time.now + timeout
562
+
563
+ # 戻ってきたデータのチェック
564
+ notice_name_sym = (notice_name.class == Symbol) ? (":"+notice_name.to_s) : ('"'+notice_name+'"')
565
+ instance_method_name = "cs_receive_response_#{notice_name}"
566
+ # cs_logger.debug "instance_eval notice_name_sym=" + notice_name_sym.inspect
567
+ expr = <<-EOF
568
+ def self.#{instance_method_name}(ret_obj)
593
569
  begin
594
- cs_send_data(sock, send_obj_dup, :type=>dtype) # データ送信
595
- # cs_logger.debug "cs_server_send_data:send data notice_name=#{notice_name.inspect}\n"
596
- rescue DangoFrameworkError
597
- cs_logger.debug "cs_server_send_data:notice_name=#{notice_name.inspect}\n"
570
+ send_receive_shared[#{notice_name_sym}] = ret_obj
571
+ rescue Exception
572
+ cs_logger.debug "instance_eval Error=" + $!.class.to_s
573
+ cs_logger.debug "instance_eval Error=" + $!.message.to_s
574
+ cs_logger.debug "instance_eval Error=" + $!.backtrace.pretty_inspect
598
575
  end
599
576
  end
600
- end
577
+ cs_logger.debug "defined:#{instance_method_name}"
578
+ EOF
579
+ # cs_logger.debug "expr:#{expr.inspect}"
580
+ # cs_logger.debug "send_receive_shared:#{self.send_receive_shared().inspect}"
581
+ instance_eval expr
601
582
 
602
- # 戻ってきたデータがあれば
603
- if send_receive_shared[notice_name]
604
- cs_logger.debug "notice_name:#{send_receive_shared[notice_name].inspect}"
605
- break
583
+ # タイムアウトチェック
584
+ (timeout.to_f / SendReceiveSleepIntervalSec).to_i.times do
585
+ if Time.now > end_reserved_time
586
+ cs_logger.debug "timeout:#{notice_name}"
587
+ break
588
+ # raise(DangoFrameworkTimeoutError, "timeout:#{notice_name}")
589
+ end
590
+
591
+ # 送信スレッドが開始していなければ開始
592
+ if !receive_thread
593
+ receive_thread = Thread.start do
594
+ begin
595
+ cs_send_data(sock, send_obj_dup, :type=>dtype) # データ送信
596
+ # cs_logger.debug "cs_server_send_data:send data notice_name=#{notice_name.inspect}\n"
597
+ rescue DangoFrameworkError
598
+ cs_logger.debug "cs_server_send_data:notice_name=#{notice_name.inspect}\n"
599
+ end
600
+ end
601
+ end
602
+
603
+ # 戻ってきたデータがあれば
604
+ if send_receive_shared[notice_name]
605
+ cs_logger.debug "notice_name:#{send_receive_shared[notice_name].inspect}"
606
+ break
607
+ end
608
+
609
+ sleep SendReceiveSleepIntervalSec # スリープ
610
+ end # タイムアウト処理終わり
611
+
612
+ if !send_receive_shared[notice_name] # 戻ってきたデータがあるかどうかチェック
613
+ # raise(DangoFrameworkError, "received data is none")
614
+ cs_logger.warn "!!! received data is none. #{notice_name} #{send_receive_shared[notice_name].inspect}"
606
615
  end
607
616
 
608
- sleep SendReceiveSleepIntervalSec # スリープ
609
- end # タイムアウト処理終わり
610
-
611
- if !send_receive_shared[notice_name] # 戻ってきたデータがあるかどうかチェック
612
- # raise(DangoFrameworkError, "received data is none")
613
- cs_logger.debug "received data is none. #{send_receive_shared[notice_name].inspect}"
617
+ remove_method(instance_method_name) # 定義したインスタンスメソッドを削除しておく
614
618
  end
615
-
616
- remove_method(instance_method_name) # 定義したインスタンスメソッドを削除しておく
619
+ rescue
620
+ cs_logger.debug "send_response_thread error:#{error_message($!, 'u')}"
617
621
  end
618
622
  end # Thread:end
619
623
 
620
- sleep SendReceiveSleepIntervalSec # スリープ
621
- end
624
+ # end
622
625
 
623
626
  self
624
627
  end
data/lib/dango/version.rb CHANGED
@@ -2,7 +2,7 @@ module Dango #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 4
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: dango
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.4
7
- date: 2007-10-04 00:00:00 +09:00
6
+ version: 0.0.5
7
+ date: 2007-10-09 00:00:00 +09:00
8
8
  summary: Ruby - Flash conneciton network flamework
9
9
  require_paths:
10
10
  - lib