Merge pull request #15070 from ayamomiji/sse-patch
Add multiple lines message support for SSE module
This commit is contained in:
commit
125cc780c5
@ -102,7 +102,8 @@ def perform_write(json, options)
|
||||
end
|
||||
end
|
||||
|
||||
@stream.write "data: #{json}\n\n"
|
||||
message = json.gsub("\n", "\ndata: ")
|
||||
@stream.write "data: #{message}\n\n"
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -39,6 +39,13 @@ def sse_with_id
|
||||
ensure
|
||||
sse.close
|
||||
end
|
||||
|
||||
def sse_with_multiple_line_message
|
||||
sse = SSE.new(response.stream)
|
||||
sse.write("first line.\nsecond line.")
|
||||
ensure
|
||||
sse.close
|
||||
end
|
||||
end
|
||||
|
||||
tests SSETestController
|
||||
@ -87,6 +94,15 @@ def test_sse_with_id
|
||||
assert_match(/data: {\"name\":\"Ryan\"}/, second_response)
|
||||
assert_match(/id: 2/, second_response)
|
||||
end
|
||||
|
||||
def test_sse_with_multiple_line_message
|
||||
get :sse_with_multiple_line_message
|
||||
|
||||
wait_for_response_stream_close
|
||||
first_response, second_response = response.body.split("\n")
|
||||
assert_match(/data: first line/, first_response)
|
||||
assert_match(/data: second line/, second_response)
|
||||
end
|
||||
end
|
||||
|
||||
class LiveStreamTest < ActionController::TestCase
|
||||
|
Loading…
Reference in New Issue
Block a user