Я хочу аутентифицировать пользователей, когда они пытаются запустить TCP-соединение в моем приложении Rails. Вот текущий код, который у меня есть, он очень упрощен, но должен дать вам представление о том, что я хочу сделать.
TcpServer.rb
module TcpServer
def receive_data(data)
(@buf ||= '') << data
if line = @buf.slice!(/(.+)\r?\n/)
commands = data.split(";")
case commands[0]
when /start/i
if !User.authenticate(commands[1],commands[2])
close_connection
puts "Subscription invalid."
else
put "Subscription validated."
end
end
end
end
EventMachine::run do
host = "localhost"
port = "5587"
EventMachine::start_server host, port, TcpServer
puts "TcpServer started @ #{host}:#{port}"
end
end
Что мне нужно требовать или включать для доступа к моей модели пользователя из этого модуля? Или это просто совершенно неверный способ сделать это? Если так, что вы предлагаете?
Проблема в том, что я не запускал его с Rails.
Я запускал его с:
ruby lib/TcpServer.rb
вместо:
script/runner lib/TcpServer.rb
Не включает или требует необходимости, Rails сделал это автоматически.