【发布时间】:2017-09-19 10:56:56
【问题描述】:
我想创建一个类似于Twitter Streaming API 的服务器,以便客户端可以实时读取响应并保持连接状态。如何在 Crystal 中做到这一点?
【问题讨论】:
标签: http chunked-encoding crystal-lang
我想创建一个类似于Twitter Streaming API 的服务器,以便客户端可以实时读取响应并保持连接状态。如何在 Crystal 中做到这一点?
【问题讨论】:
标签: http chunked-encoding crystal-lang
摘自此issue:
@MakeNowJust 说:
您应该在客户端中将
\n附加到发送文本到gets并执行io.flush。
require "http/server"
port = 5000
server = HTTP::Server.new(port) do |context|
loop do
context.response.puts "Something\n"
context.response.flush
sleep 1
end
end
puts "Listening on #{port}"
server.listen
@rx14 说:
水晶已经处理写入分块响应。只需继续写入输出响应,并在您想确保客户端收到消息时调用 flush 。如果没有内容长度标头,响应将自动为您选择分块编码。
【讨论】: