Module: DefaultDangoReceive

Included in:
DangoServerFramework
Defined in:
lib/dango/default_dango_receive.rb

Overview

デフォルトのdango_receive_*群

Instance Method Summary collapse

Instance Method Details

#dango_receive__change_encode_type(ret_obj) ⇒ Object

action_nameがエンコード変更なら



20
21
22
23
# File 'lib/dango/default_dango_receive.rb', line 20

def dango_receive__change_encode_type(ret_obj)
  logger.debug "dango_receive__change_encode_type: #{ret_obj['encode_type'].inspect}"
  session[:encode_type] = ret_obj['encode_type']
end

#dango_receive__monitor_get_server_info(ret_obj) ⇒ Object

メンテナンスコマンド:サーバーからクライアントへのデータ送信



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/dango/default_dango_receive.rb', line 31

def dango_receive__monitor_get_server_info(ret_obj)
  logger.debug "dango_receive__monitor_get_server_info:#{ret_obj.inspect}"
  dango_check_monitor_error()
  
  get_server_info = {
    'server_start_time' => start_time.strftime("%Y-%m-%d %H:%M:%S"),
    'up_time'           => Time.now - start_time,
    
    'recv_count'      => recv_count, # 受信回数
    'send_count'      => send_count, # 送信回数
    'recv_fail_count' => recv_fail_count, # 受信失敗回数
    'send_fail_count' => send_fail_count, # 送信失敗回数
    
    'log_level'     => log_level_str,
    'log_file'      => log_file,
    'log_max_size'  => log_max_size,
    'log_shift_age' => log_shift_age,
  }
  
  send_obj = {'code'=>0, 'get_server_info'=>get_server_info}
  send_notice('return__monitor_get_server_info', session[:sid], send_obj, :type=>2)
end

#dango_receive__monitor_get_session_list(ret_obj) ⇒ Object

メンテナンスコマンド:サーバーからクライアントへのデータ送信



64
65
66
67
68
69
70
# File 'lib/dango/default_dango_receive.rb', line 64

def dango_receive__monitor_get_session_list(ret_obj)
  logger.debug "dango_receive__monitor_get_session_list:#{ret_obj.inspect}"
  dango_check_monitor_error()
  
  send_obj = {'code'=>0, 'get_session_list'=>session_list}
  send_notice('return__monitor_get_session_list', session[:sid], send_obj, :type=>2)
end

#dango_receive__monitor_get_shared(ret_obj) ⇒ Object

メンテナンスコマンド:サーバーからクライアントへのデータ送信



55
56
57
58
59
60
61
# File 'lib/dango/default_dango_receive.rb', line 55

def dango_receive__monitor_get_shared(ret_obj)
  logger.debug "dango_receive__monitor_get_shared:#{ret_obj.inspect}"
  dango_check_monitor_error()
  
  send_obj = {'code'=>0, 'get_shared'=>shared.to_hash}
  send_notice('return__monitor_get_shared', session[:sid], send_obj, :type=>2)
end

#dango_receive__monitor_get_socket_list(ret_obj) ⇒ Object

メンテナンスコマンド:サーバーからクライアントへのデータ送信



73
74
75
76
77
78
79
# File 'lib/dango/default_dango_receive.rb', line 73

def dango_receive__monitor_get_socket_list(ret_obj)
  logger.debug "dango_receive__monitor_get_socket_list:#{ret_obj.inspect}"
  dango_check_monitor_error()
  
  send_obj = {'code'=>0, 'get_socket_list'=>socket_list.keys}
  send_notice('return__monitor_get_socket_list', session[:sid], send_obj, :type=>2)
end

#dango_receive__monitor_send_system_message(ret_obj) ⇒ Object

メンテナンスコマンド:接続者全員へメッセージ送信



93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/dango/default_dango_receive.rb', line 93

def dango_receive__monitor_send_system_message(ret_obj)
  logger.debug "dango_receive__monitor_send_system_message:#{ret_obj.inspect}"
  dango_check_monitor_error()
  
  # 全員へ_notice_system_messageを通知
  socket_list.keys.each do |sid|
    next if session[:sid] == sid
    send_obj = { "message" => ret_obj["message"] }
    send_notice('_notice_system_message', sid, send_obj)
  end
  
  send_obj = {'code'=>0, }
  send_notice('return__monitor_send_system_message', session[:sid], send_obj, :type=>2)
end

#dango_receive__monitor_server_reload(ret_obj) ⇒ Object

メンテナンスコマンド:サーバーデータ再読み込み



82
83
84
85
86
87
88
89
90
# File 'lib/dango/default_dango_receive.rb', line 82

def dango_receive__monitor_server_reload(ret_obj)
  logger.debug "dango_receive__monitor_server_reload"
  dango_check_monitor_error()
  
  @server_reload = true
  logger.debug "@server_reload=#{@server_reload.inspect}"
  send_obj = {'code'=>0, 'message'=>'success'}
  send_notice('return__monitor_server_reload', session[:sid], send_obj, :type=>2)
end

#dango_receive__notice_heart_beat(ret_obj) ⇒ Object

クライアントから来たheart_beatなら



10
11
12
13
14
15
16
17
# File 'lib/dango/default_dango_receive.rb', line 10

def dango_receive__notice_heart_beat(ret_obj)
  logger.debug "dango_receive__notice_heart_beat:#{session[:sid]}:#{ret_obj['_hb_id']} " 
  
  shared.transaction(:_heart_beat_time_hash) do |heart_beat_time_hash|
    heart_beat_time_hash[session[:sid]] = Time.now
    shared.commit(heart_beat_time_hash)
  end
end