серверу Eventmachine не удалось выполнить receive_data - PullRequest
1 голос
/ 01 марта 2011

У меня есть приложение 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...'
}

Примечание: у меня есть определение модуля в отдельном файле вместе с моими классами, которые мне требуются в сценарии сервера, если это имеет какое-либо значение.

1 Ответ

1 голос
/ 01 марта 2011

Я проверил ваш код, и он выдает «привет» каждый раз, когда отправляю что-то через telnet.с моей точки зрения код правильный.Вы уверены, что скрипт отправки работает?попробуй с ручным telnet на порт 8081. привет.

...