我有一个 eventmachine 应用程序,其中一个脚本正在从文件中读取,将数据逐行发送到另一个脚本,并且“服务器”脚本正在处理该数据。不幸的是,“服务器”脚本无法正常执行receive_data
。我知道正在建立连接,因为它 eecutes 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...'
}
注意:我将模块定义与我的类一起放在一个单独的文件中,如果这有什么不同的话,我需要将它们放入服务器脚本中。