dango 0.2.4 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/dango/server_framework.rb +24 -19
- data/lib/dango/version.rb +1 -1
- metadata +2 -2
@@ -658,19 +658,19 @@ EOF
|
|
658
658
|
# クライアントから来るハートビートのチェック
|
659
659
|
heart_beat_time_hash = shared[:_heart_beat_time_hash]
|
660
660
|
|
661
|
-
#
|
661
|
+
# 全員分のチェック
|
662
662
|
socket_list.keys.each do |sid|
|
663
663
|
sock = socket_list[sid]
|
664
|
-
next if ! sock
|
665
|
-
# logger.debug "heart_beat_thread_start:sid=#{sid} #{sock} #{sock.closed?}"
|
666
|
-
# send_notice("_heart_beat", sid, {}, {:timeout=>@heart_beat_response_wait_sec})
|
667
664
|
|
668
|
-
#
|
665
|
+
if ! sock # すでにsocketが無い場合は、スキップ
|
666
|
+
logger.warn "!!!! heart_beat_thread_start:sock is not found. #{sid}:#{sock}"
|
667
|
+
next
|
668
|
+
end
|
669
|
+
|
670
|
+
# クライアントから来たハートビートの時間チェックし、古ければsocketを閉じる
|
669
671
|
if heart_beat_time_hash[sid] && heart_beat_time_hash[sid] < Time.now - @heart_beat_receive_wait_sec
|
670
672
|
logger.warn "!!!! heart_beat_thread_start:heart beat old:#{sid}:#{heart_beat_time_hash[sid]}:#{sock}:#{sock.closed?}"
|
671
673
|
sock.close if !sock.closed?
|
672
|
-
# logger.warn "!!!! heart_beat_thread_start:thread kill:#{session_th_list[sid]}"
|
673
|
-
# session_th_list[sid].kill
|
674
674
|
end
|
675
675
|
end
|
676
676
|
end
|
@@ -729,15 +729,14 @@ EOF
|
|
729
729
|
# timeout = options[:timeout] || @send_receive_timeout_default_sec
|
730
730
|
dtype = options[:type] || 0
|
731
731
|
|
732
|
-
|
732
|
+
send_obj_dup = send_obj.deep_dup
|
733
|
+
send_obj_dup["notice"] = notice_name.to_s
|
734
|
+
send_obj_dup["server_time"] = Time.now_to_s
|
733
735
|
|
734
736
|
sids.each do |sid|
|
735
|
-
|
736
|
-
send_obj_dup["notice"] = notice_name.to_s
|
737
|
-
|
737
|
+
# send_id = Digest::MD5.hexdigest(sid.to_s + notice_name.to_s + Time.now.to_f.to_s + rand().to_s)
|
738
738
|
# send_id = sid.to_s + notice_name.to_s + Time.now.to_f.to_s + rand().to_s
|
739
739
|
send_id = notice_name.to_s + Time.now.to_f.to_s + rand().to_s
|
740
|
-
# send_id = Digest::MD5.hexdigest(sid.to_s + notice_name.to_s + Time.now.to_f.to_s + rand().to_s)
|
741
740
|
send_obj_dup["_id"] = send_id
|
742
741
|
|
743
742
|
@queue_send_notice.push([sid, send_obj_dup, dtype].deep_dup)
|
@@ -753,10 +752,16 @@ EOF
|
|
753
752
|
loop do
|
754
753
|
begin
|
755
754
|
send_data_list = []
|
756
|
-
|
755
|
+
|
756
|
+
pop_data = @queue_send_notice.pop
|
757
|
+
send_data_list.push(pop_data) # Queueデータ待ち
|
757
758
|
# logger.debug "thread_send_notice_queue:sending data"
|
758
|
-
while(! @queue_send_notice.empty?) do # 残りのデータもQueueに入れていく
|
759
|
-
|
759
|
+
# while(! @queue_send_notice.empty?) do # 残りのデータもQueueに入れていく
|
760
|
+
|
761
|
+
@queue_send_notice.size.times do
|
762
|
+
# while(! @queue_send_notice.empty?) do # 残りのデータもQueueに入れていく
|
763
|
+
pop_data = @queue_send_notice.pop
|
764
|
+
send_data_list.push(pop_data) # Queueデータ待ち
|
760
765
|
end
|
761
766
|
|
762
767
|
send_data_sid_list = {}
|
@@ -771,7 +776,7 @@ EOF
|
|
771
776
|
end
|
772
777
|
|
773
778
|
# sidごとにデータをまとめ送り
|
774
|
-
send_data_sid_list.each do |sid,
|
779
|
+
send_data_sid_list.each do |sid, one_send_data_list|
|
775
780
|
sock = socket_list[sid]
|
776
781
|
if !sock
|
777
782
|
logger.info "thread_send_notice_queue:not found sid=#{sid} sock=#{sock.inspect}"
|
@@ -784,11 +789,11 @@ EOF
|
|
784
789
|
end
|
785
790
|
|
786
791
|
begin
|
787
|
-
logger.debug "thread_send_notice_queue:dango_send_data:sid=#{sid} sock=#{sock.inspect} #{
|
792
|
+
logger.debug "thread_send_notice_queue:dango_send_data:sid=#{sid} sock=#{sock.inspect} #{one_send_data_list.collect{|d| d['notice'] + ','}}"
|
788
793
|
|
789
|
-
# logger.debug
|
794
|
+
# logger.debug one_send_data_list.pretty_inspect
|
790
795
|
|
791
|
-
dango_send_data(sock,
|
796
|
+
dango_send_data(sock, one_send_data_list, :type=>send_data_dtype_list[sid]) # データ送信
|
792
797
|
|
793
798
|
rescue DangoFrameworkConnectionError
|
794
799
|
logger.info "thread_send_notice_queue:failed send. sid=#{sid} sock=#{sock.inspect} #{$!.class}"
|
data/lib/dango/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dango
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keisuke Minami
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-05-
|
12
|
+
date: 2008-05-26 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|