dango 0.0.39 → 0.1.0

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.
@@ -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: []