Open zhongsheng opened 2 weeks ago
I cannot reproduce with:
I see Transfer-Encoding: chunked
with and without thruster
.
Could you please double check? 🙏
I cannot reproduce with:
- rails 8.0.0
- thruster 0.1.8
- ruby 3.3.5
I see
Transfer-Encoding: chunked
with and withoutthruster
.Could you please double check? 🙏
rails new myapp
cd myapp
rails g controller sse index events
# put some code in events method
HTTP_PORT=8088 bin/thrust rails server
Then access http://localhost:8088/sse/events
My bad, I was curl
ing the wrong port 🤦
I think there's some buffering involved with the GzipHandler.
If you change your Rails controller code as follows then it should work:
class SseController < ApplicationController
include ActionController::Live
def index
end
def events
response.headers['Content-Type'] = 'text/event-stream'
sse = SSE.new(response.stream, event: "message")
5.times {
- sse.write({ message: "hello world" })
+ sse.write({ message: "hello world" * 1000 })
sleep 1
}
ensure
response.stream.close
end
end
bin/rails s
worksBut with thruster
bin/thrust bin/rails s
, transfer-encoding is missing. This cause a problem, messages returned as a whole text.Rails 8.0.0.beta1 ruby 3.3.1 (2024-04-23 revision c56cd86388) [arm64-darwin23]