Merge pull request #15070 from ayamomiji/sse-patch

Add multiple lines message support for SSE module
This commit is contained in:
Aaron Patterson 2014-05-14 14:02:04 -07:00
commit 125cc780c5
2 changed files with 18 additions and 1 deletions

@ -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