Chromium Code Reviews| Index: samples/chat/chat_stress_client.dart |
| diff --git a/samples/chat/chat_stress_client.dart b/samples/chat/chat_stress_client.dart |
| index 84a030e39e03912c911ff7432a51330f0fe0875d..1951ef1cc2accd86f5de61cecbd980c2a26cd1f0 100644 |
| --- a/samples/chat/chat_stress_client.dart |
| +++ b/samples/chat/chat_stress_client.dart |
| @@ -3,6 +3,7 @@ |
| // BSD-style license that can be found in the LICENSE file. |
| #library("chat_stress_client.dart"); |
| +#import("dart:io"); |
| #import("dart:json"); |
| #import("http.dart"); |
| @@ -46,9 +47,7 @@ class ChatStressClient { |
| } |
| void leave() { |
| - HTTPClientResponse response; |
| - |
| - void leaveResponseHandler(String data) { |
| + void leaveResponseHandler(HTTPClientResponse response, String data) { |
| httpClient.shutdown(); |
| } |
| @@ -60,17 +59,18 @@ class ChatStressClient { |
| request.writeString(JSON.stringify(leaveRequest)); |
| request.outputStream.close(); |
| }; |
| - conn.responseHandler = (HTTPClientResponse r) { |
| - response = r; |
| - response.dataEnd = leaveResponseHandler; |
| + conn.responseHandler = (HTTPClientResponse response) { |
| + StringInputStream stream = new StringInputStream(response.inputStream); |
|
Anders Johnsen
2012/02/28 12:23:40
I agree that this operation is getting quite bloat
|
| + StringBuffer body = new StringBuffer(); |
| + stream.dataHandler = () => body.add(stream.read()); |
| + stream.closeHandler = () => leaveResponseHandler(response, |
|
Mads Ager (google)
2012/02/28 12:27:40
Maybe either move the whole body to the next line
Søren Gjesse
2012/02/28 13:03:42
Done (using {} that is).
|
| + body.toString()); |
| }; |
| } |
| var sendMessage; |
| void receive() { |
| - HTTPClientResponse response; |
| - |
| - void receiveResponseHandler(String data) { |
| + void receiveResponseHandler(HTTPClientResponse response, String data) { |
| var responseData = parseResponse(response, data, "receive"); |
| if (responseData == null) return; |
| if (responseData["disconnect"] == true) return; |
| @@ -88,17 +88,17 @@ class ChatStressClient { |
| request.writeString(JSON.stringify(messageRequest)); |
| request.outputStream.close(); |
| }; |
| - conn.responseHandler = (HTTPClientResponse r) { |
| - response = r; |
| - response.dataEnd = receiveResponseHandler; |
| + conn.responseHandler = (HTTPClientResponse response) { |
| + StringInputStream stream = new StringInputStream(response.inputStream); |
| + StringBuffer body = new StringBuffer(); |
| + stream.dataHandler = () => body.add(stream.read()); |
| + stream.closeHandler = () => receiveResponseHandler(response, |
| + body.toString()); |
| }; |
| } |
| sendMessage = () { |
| - HTTPClientRequest request; |
| - HTTPClientResponse response; |
| - |
| - void sendResponseHandler(String data) { |
| + void sendResponseHandler(HTTPClientResponse response, String data) { |
| var responseData = parseResponse(response, data, "message"); |
| if (responseData == null) return; |
| @@ -121,20 +121,20 @@ class ChatStressClient { |
| messageRequest["message"] = "message " + sendMessageCount; |
| HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/message"); |
| conn.requestHandler = (HTTPClientRequest request) { |
| - print(JSON.stringify(messageRequest)); |
| request.writeString(JSON.stringify(messageRequest)); |
| request.outputStream.close(); |
| }; |
| - conn.responseHandler = (HTTPClientResponse r) { |
| - response = r; |
| - response.dataEnd = sendResponseHandler; |
| + conn.responseHandler = (HTTPClientResponse response) { |
| + StringInputStream stream = new StringInputStream(response.inputStream); |
| + StringBuffer body = new StringBuffer(); |
| + stream.dataHandler = () => body.add(stream.read()); |
| + stream.closeHandler = () => sendResponseHandler(response, |
| + body.toString()); |
| }; |
| }; |
| void join() { |
| - HTTPClientResponse response; |
| - |
| - void joinResponseHandler(String data) { |
| + void joinResponseHandler(HTTPClientResponse response, String data) { |
| var responseData = parseResponse(response, data, "join"); |
| if (responseData == null) return; |
| sessionId = responseData["sessionId"]; |
| @@ -153,9 +153,12 @@ class ChatStressClient { |
| request.writeString(JSON.stringify(joinRequest)); |
| request.outputStream.close(); |
| }; |
| - conn.responseHandler = (HTTPClientResponse r) { |
| - response = r; |
| - response.dataEnd = joinResponseHandler; |
| + conn.responseHandler = (HTTPClientResponse response) { |
| + StringInputStream stream = new StringInputStream(response.inputStream); |
| + StringBuffer body = new StringBuffer(); |
| + stream.dataHandler = () => body.add(stream.read()); |
| + stream.closeHandler = () => joinResponseHandler(response, |
| + body.toString()); |
| }; |
| } |