1 つのスクリプトがファイルから読み取り、別のスクリプトに 1 行ずつデータを送信し、「サーバー」スクリプトがそのデータに基づいて動作する eventmachine アプリがあります。残念ながら、「サーバー」スクリプトは正常に実行receive_data
されません。接続が行われていることは eecutespost_init
であることを知っており、sender スクリプトがデータを送信していることも知っています。これは、サーバーの起動方法と一緒に私のコードの一部です。
module BT_Server
def post_init
puts "-- someone connected to the echo server!"
end
def receive_data(data)
puts "hi"
int, time, *int_macs = data.split("-")
# more stuff that isn't needed here
end
def bt_left(dev)
dev.save
if t = Device.macs.index(dev.mac)
Device.all[t].add_int(dev.int, dev.t_0, dev.t_l)
else
Device.new(dev.mac, dev.int, dev.t_0, dev.t_l)
end
return false
end
def unbind
puts "disconnection"
end
end
EventMachine::run {
EventMachine::start_server 'localhost', 8081, BT_Server
puts t_0 = Time.new
puts 'listening...'
}
注: モジュールの定義は、サーバー スクリプトに必要なクラスと一緒に、別のファイルに格納しています。