在Sinatra块中间输入客户端

时间:2013-10-17 01:50:04

标签: ruby sinatra

我有一个Sinatra应用程序,我希望获得客户端输入,如下面的伪代码所示:

get '/foo' do
    "doing some stuff"
    foo = getInputFromClient
    foo
    "continuing to do more stuff"
    foo = getInputFromClient
    foo
    "done"
end

这是我希望在客户端看到的输出:

curl http://127.0.0.1:4567/foo #start the request
doing some stuff
#Somehow submit "shoop" to Sinatra
shoop
continuing to do more stuff
#Somehow submit "woop" to Sinatra
woop
done

我无法将其拆分为两个卷曲调用。我该如何做到这一点?我不应该首先使用Sinatra吗?我是否必须切换到套接字?

我已经阅读了这些似乎相关的other questions,我对他们正在谈论的内容并不熟悉,看它是否适用于我。我希望将其他问题简化为我的案例或将一些关键字简化为Google。

1 个答案:

答案 0 :(得分:1)

通常我们会写更多这样的内容:

get '/foo' do
  ...do something...
  "done doing foo"
end

get '/foo2' do
  ...do something...
  "done doing foo2"
end

get '/foo3' do
  ...do something...
  "done doing foo3"
end

客户端会看到这样的连接握手:

  1. 连接到/foo
  2. 得到“做完foo”回复。
  3. 连接到/foo2
  4. 获取“完成foo2”响应。
  5. 连接到/foo3
  6. 获取“完成foo3”响应。
  7. 客户端和服务器端都必须编写一些代码来处理逻辑。您无法在连接过程中将消息发送回cURL,让它返回更多信息,请求更多数据并将其返回。这不是cURL的工作方式,也不是HTTP协议。

    可以使用浏览器的各种技术来回通话,但cURL不是浏览器。