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.
@@ -658,19 +658,19 @@ EOF
658
658
  # クライアントから来るハートビートのチェック
659
659
  heart_beat_time_hash = shared[:_heart_beat_time_hash]
660
660
 
661
- # 全員へheart_beatパケットを送信
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
- # クライアントから来たハートビートの時間チェックし、古ければsocketを閉じて、threadを殺す
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
- # is_error = false
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
- send_obj_dup = send_obj.deep_dup
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
- send_data_list.push(@queue_send_notice.pop) # Queueデータ待ち
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
- send_data_list.push(@queue_send_notice.pop)
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, one_send_data_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} #{one_send_data_sid.collect{|d| d['notice'] + ','}}"
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 one_send_data_sid.pretty_inspect
794
+ # logger.debug one_send_data_list.pretty_inspect
790
795
 
791
- dango_send_data(sock, one_send_data_sid, :type=>send_data_dtype_list[sid]) # データ送信
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
@@ -2,7 +2,7 @@ module Dango #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 4
5
+ TINY = 5
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
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
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-19 00:00:00 +09:00
12
+ date: 2008-05-26 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency