dango 0.2.4 → 0.2.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/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
|