Я использую простой тонкий сервер, который публикует некоторые сообщения в разные очереди, код выглядит так:
require "rubygems"
require "thin"
require "amqp"
require 'msgpack'
app = Proc.new do |env|
params = Rack::Request.new(env).params
command = params['command'].strip rescue "no command"
number = params['number'].strip rescue "no number"
p command
p number
AMQP.start do
if command =~ /\A(create|c|r|register)\z/i
MQ.queue("create").publish(number)
elsif m = (/\A(Answer|a)\s?(\d+|\d+-\d+)\z/i.match(command))
MQ.queue("answers").publish({:number => number,:answer => "answer" }.to_msgpack )
end
end
[200, {'Content-Type' => "text/plain"} , command ]
end
Rack::Handler::Thin.run(app, :Port => 4001)
Теперь, когда я запускаю сервер и делаю что-то вроде http://0.0.0.0:4001/command=r&number=123123123
Я всегда получаю дубликаты, что-то вроде:
"нет команды"
"нет номера"
"нет команды"
"нет номера"
Первое, почему я получаю дубликаты запросов? это как-то связано с браузером? поскольку, когда я использую curl, у меня не такое поведение, и во-вторых, почему я не могу получить параметры?
Любые советы о лучшей реализации для такого сервера будут высоко оценены
Заранее спасибо.