У меня есть приложение eventmachine, в котором один скрипт читает строку из файла, построчно отправляет данные в другой скрипт, и скрипт «сервер» воздействует на эти данные.К сожалению, «серверный» скрипт не может выполнить receive_data
, как следует.Я знаю, что устанавливается соединение, потому что оно выполняет post_init
, и я знаю, что скрипт отправителя отправляет данные.Вот часть моего кода вместе с тем, как я запускаю сервер.
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...'
}
Примечание: у меня есть определение модуля в отдельном файле вместе с моими классами, которые мне требуются в сценарии сервера, если это имеет какое-либо значение.