dango 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/dango/script/dango_server.rb +1 -1
- data/lib/dango/server_framework.rb +62 -59
- data/lib/dango/version.rb +1 -1
- metadata +2 -2
@@ -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
|
-
|
557
|
-
|
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
|
-
|
592
|
-
|
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
|
-
|
595
|
-
|
596
|
-
|
597
|
-
cs_logger.debug "
|
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
|
-
|
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
|
-
|
604
|
-
|
605
|
-
|
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
|
-
|
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
|
-
|
619
|
+
rescue
|
620
|
+
cs_logger.debug "send_response_thread error:#{error_message($!, 'u')}"
|
617
621
|
end
|
618
622
|
end # Thread:end
|
619
623
|
|
620
|
-
|
621
|
-
end
|
624
|
+
# end
|
622
625
|
|
623
626
|
self
|
624
627
|
end
|
data/lib/dango/version.rb
CHANGED
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.
|
7
|
-
date: 2007-10-
|
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
|