dango 0.0.39 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -173,6 +173,7 @@ class DangoClientFramework
173
173
  # 接続直後のsid通知なら
174
174
  def dango_receive__notice_sid(rec_obj)
175
175
  @sid = rec_obj["_sid"]
176
+ logger.info "sid=#{@sid}"
176
177
  end
177
178
 
178
179
  # システムからのメッセージ通知なら
@@ -39,6 +39,7 @@ class DangoMonitorClient < DangoClientFramework
39
39
  logger.debug "DangoMonitorClient:#{monitor_action_name}:#{ENV['RAILS_ROOT']}"
40
40
  begin
41
41
  ret_obj = send_action_return_notice("_monitor_#{monitor_action_name}", {})
42
+ logger.debug "get_server_info_common:ret_obj=#{ret_obj.inspect}"
42
43
  raise("code is not 0 (faild). :code=#{ret_obj['code']}") if ret_obj['code'] != 0
43
44
  return(ret_obj[monitor_action_name])
44
45
  rescue DangoFrameworkConnectionError
@@ -107,12 +107,14 @@ class DangoServerFramework
107
107
 
108
108
  # SIGINT の捕捉
109
109
  Signal.trap(:INT) do
110
+ logger.warn "SIGINT\n#{caller(0).pretty_inspect}"
110
111
  stop_gserver() # gserverの停止
111
112
  exit_process() # プロセス終了処理
112
113
  end
113
114
 
114
115
  # 終了処理を登録しておく(これが無いとWindowsではエラーが出てもプロセスが落ちないことがある)
115
116
  at_exit do
117
+ logger.error "at_exit ERROR\n#{caller(0).pretty_inspect}"
116
118
  stop_gserver() # gserverの停止
117
119
  exit_process() # プロセス終了処理
118
120
  end
@@ -307,7 +309,13 @@ class DangoServerFramework
307
309
 
308
310
  if is_flash_policy_file && @policy_file_request # Flashのポリシーファイルが来たら
309
311
  logger.info "is_flash_policy_file #{sid} "
310
- policy_data = '<?xml version="1.0"?><cross-domain-policy><allow-access-from domain="*" to-ports="*" /></cross-domain-policy>' + "\0" + "\n"
312
+ policy_data = <<EOF
313
+ <?xml version="1.0"?>
314
+ <cross-domain-policy>
315
+ <allow-access-from domain="*" to-ports="*" />
316
+ </cross-domain-policy>
317
+ EOF
318
+ policy_data += "\0" + "\n"
311
319
  logger.debug policy_data
312
320
  sock.write policy_data
313
321
  sock.flush
@@ -390,11 +398,10 @@ class DangoServerFramework
390
398
  end
391
399
 
392
400
  logger.info "#{sock.inspect} #{sid} is closed"
393
-
394
- session_del()
395
401
  end
396
402
  end
397
403
 
404
+ session_del() # @mutex_proc_thread.synchronizeの中だとうまくいかない
398
405
  end
399
406
  end
400
407
 
@@ -578,8 +585,12 @@ class DangoServerFramework
578
585
  # @session[sid]
579
586
  end
580
587
  def session_del # セッション情報の初期化
581
- @session_list.delete(Thread.current.object_id)
588
+ begin
589
+ @session_list.delete(Thread.current.object_id)
582
590
  # @session_th_list.delete(Thread.current)
591
+ rescue Exception
592
+ logger.error "ERROR\n#{error_message($!, 'u')}"
593
+ end
583
594
  end
584
595
 
585
596
  attr_reader(:session_list)
@@ -629,21 +640,21 @@ class DangoServerFramework
629
640
  begin
630
641
  sleep @gc_interval_sec
631
642
 
632
- Thread.critical = true
643
+ # Thread.critical = true
633
644
  logger.debug "GC start "
634
645
  gc_start_time = Time.now
635
646
  GC.enable
636
647
  GC.start
637
648
  GC.disable
638
649
  logger.debug "GC end #{Time.now - gc_start_time}sec "
639
- Thread.critical = false
650
+ # Thread.critical = false
640
651
 
641
652
  rescue Exception
642
653
  logger.error "Exception gc_thread_start #{error_message($!, 'u')}"
643
654
  end
644
655
  end
645
656
  end
646
- th.priority = -1
657
+ th.priority = 3
647
658
  end
648
659
 
649
660
  # ハートビートスレッドの開始
@@ -797,10 +808,11 @@ class DangoServerFramework
797
808
  if Time.now > end_reserved_time
798
809
  logger.debug "send_notice:receive timeout:#{notice_name} #{sid} #{end_reserved_time}"
799
810
 
800
- # if notice_name.to_s == "_heart_beat" # heart beatだったらsockを止める
801
- # logger.info "!!!! send_notice:heart_beat timeout"
802
- # sock.close if !sock.closed?
803
- # end
811
+ # このコードは不要なはずだが念の為取っておいてある、安定したことが確認できたら削除する
812
+ if notice_name.to_s == "_heart_beat" # heart beatだったらsockを止める
813
+ logger.info "!!!! send_notice:heart_beat timeout"
814
+ sock.close if !sock.closed?
815
+ end
804
816
  break
805
817
  end
806
818
 
data/lib/dango/version.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Dango #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 0
5
- TINY = 39
4
+ MINOR = 1
5
+ TINY = 0
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.0.39
4
+ version: 0.1.0
5
5
  platform: ""
6
6
  authors:
7
7
  - Keisuke Minami
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2007-12-01 00:00:00 +09:00
12
+ date: 2007-12-08 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -21,6 +21,15 @@ dependencies:
21
21
  - !ruby/object:Gem::Version
22
22
  version: "0"
23
23
  version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: dango_generator
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.1.0
32
+ version:
24
33
  description: Realtime communications network framework for Ruby and Flash on Rails.
25
34
  email: keisuke@rccn.com
26
35
  executables: []