Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(963)

Side by Side Diff: samples/chat/chat_stress_client.dart

Issue 9495007: Prepare the HTTP library for inclusion in the standalone VM (step 2) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #library("chat_stress_client.dart"); 5 #library("chat_stress_client.dart");
6 #import("dart:io");
6 #import("dart:json"); 7 #import("dart:json");
7 #import("http.dart"); 8 #import("http.dart");
8 9
9 10
10 class ChatStressClient { 11 class ChatStressClient {
11 ChatStressClient() : verbose = false, messagesToSend = 100; 12 ChatStressClient() : verbose = false, messagesToSend = 100;
12 13
13 void run() { 14 void run() {
14 HTTPClient httpClient; // HTTP client connection factory. 15 HTTPClient httpClient; // HTTP client connection factory.
15 String sessionId; // Session id when connected. 16 String sessionId; // Session id when connected.
(...skipping 23 matching lines...) Expand all
39 } 40 }
40 var responseData = JSON.parse(data); 41 var responseData = JSON.parse(data);
41 if (responseData["response"] != expected ) { 42 if (responseData["response"] != expected ) {
42 printProtocolError(); 43 printProtocolError();
43 return null; 44 return null;
44 } 45 }
45 return responseData; 46 return responseData;
46 } 47 }
47 48
48 void leave() { 49 void leave() {
49 HTTPClientResponse response; 50 void leaveResponseHandler(HTTPClientResponse response, String data) {
50
51 void leaveResponseHandler(String data) {
52 httpClient.shutdown(); 51 httpClient.shutdown();
53 } 52 }
54 53
55 Map leaveRequest = new Map(); 54 Map leaveRequest = new Map();
56 leaveRequest["request"] = "leave"; 55 leaveRequest["request"] = "leave";
57 leaveRequest["sessionId"] = sessionId; 56 leaveRequest["sessionId"] = sessionId;
58 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/leave"); 57 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/leave");
59 conn.requestHandler = (HTTPClientRequest request) { 58 conn.requestHandler = (HTTPClientRequest request) {
60 request.writeString(JSON.stringify(leaveRequest)); 59 request.writeString(JSON.stringify(leaveRequest));
61 request.outputStream.close(); 60 request.outputStream.close();
62 }; 61 };
63 conn.responseHandler = (HTTPClientResponse r) { 62 conn.responseHandler = (HTTPClientResponse response) {
64 response = r; 63 StringInputStream stream = new StringInputStream(response.inputStream);
Anders Johnsen 2012/02/28 12:23:40 I agree that this operation is getting quite bloat
65 response.dataEnd = leaveResponseHandler; 64 StringBuffer body = new StringBuffer();
65 stream.dataHandler = () => body.add(stream.read());
66 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).
67 body.toString());
66 }; 68 };
67 } 69 }
68 70
69 var sendMessage; 71 var sendMessage;
70 void receive() { 72 void receive() {
71 HTTPClientResponse response; 73 void receiveResponseHandler(HTTPClientResponse response, String data) {
72
73 void receiveResponseHandler(String data) {
74 var responseData = parseResponse(response, data, "receive"); 74 var responseData = parseResponse(response, data, "receive");
75 if (responseData == null) return; 75 if (responseData == null) return;
76 if (responseData["disconnect"] == true) return; 76 if (responseData["disconnect"] == true) return;
77 77
78 sendMessage(); 78 sendMessage();
79 } 79 }
80 80
81 Map messageRequest = new Map(); 81 Map messageRequest = new Map();
82 messageRequest["request"] = "receive"; 82 messageRequest["request"] = "receive";
83 messageRequest["sessionId"] = sessionId; 83 messageRequest["sessionId"] = sessionId;
84 messageRequest["nextMessage"] = receiveMessageCount; 84 messageRequest["nextMessage"] = receiveMessageCount;
85 messageRequest["maxMessages"] = 100; 85 messageRequest["maxMessages"] = 100;
86 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/receive") ; 86 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/receive") ;
87 conn.requestHandler = (HTTPClientRequest request) { 87 conn.requestHandler = (HTTPClientRequest request) {
88 request.writeString(JSON.stringify(messageRequest)); 88 request.writeString(JSON.stringify(messageRequest));
89 request.outputStream.close(); 89 request.outputStream.close();
90 }; 90 };
91 conn.responseHandler = (HTTPClientResponse r) { 91 conn.responseHandler = (HTTPClientResponse response) {
92 response = r; 92 StringInputStream stream = new StringInputStream(response.inputStream);
93 response.dataEnd = receiveResponseHandler; 93 StringBuffer body = new StringBuffer();
94 stream.dataHandler = () => body.add(stream.read());
95 stream.closeHandler = () => receiveResponseHandler(response,
96 body.toString());
94 }; 97 };
95 } 98 }
96 99
97 sendMessage = () { 100 sendMessage = () {
98 HTTPClientRequest request; 101 void sendResponseHandler(HTTPClientResponse response, String data) {
99 HTTPClientResponse response;
100
101 void sendResponseHandler(String data) {
102 var responseData = parseResponse(response, data, "message"); 102 var responseData = parseResponse(response, data, "message");
103 if (responseData == null) return; 103 if (responseData == null) return;
104 104
105 sendMessageCount++; 105 sendMessageCount++;
106 if (verbose) { 106 if (verbose) {
107 if (sendMessageCount % 10 == 0) { 107 if (sendMessageCount % 10 == 0) {
108 print("$sendMessageCount messages"); 108 print("$sendMessageCount messages");
109 } 109 }
110 } 110 }
111 if (sendMessageCount < messagesToSend) { 111 if (sendMessageCount < messagesToSend) {
112 receive(); 112 receive();
113 } else { 113 } else {
114 leave(); 114 leave();
115 } 115 }
116 } 116 }
117 117
118 Map messageRequest = new Map(); 118 Map messageRequest = new Map();
119 messageRequest["request"] = "message"; 119 messageRequest["request"] = "message";
120 messageRequest["sessionId"] = sessionId; 120 messageRequest["sessionId"] = sessionId;
121 messageRequest["message"] = "message " + sendMessageCount; 121 messageRequest["message"] = "message " + sendMessageCount;
122 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/message") ; 122 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/message") ;
123 conn.requestHandler = (HTTPClientRequest request) { 123 conn.requestHandler = (HTTPClientRequest request) {
124 print(JSON.stringify(messageRequest));
125 request.writeString(JSON.stringify(messageRequest)); 124 request.writeString(JSON.stringify(messageRequest));
126 request.outputStream.close(); 125 request.outputStream.close();
127 }; 126 };
128 conn.responseHandler = (HTTPClientResponse r) { 127 conn.responseHandler = (HTTPClientResponse response) {
129 response = r; 128 StringInputStream stream = new StringInputStream(response.inputStream);
130 response.dataEnd = sendResponseHandler; 129 StringBuffer body = new StringBuffer();
130 stream.dataHandler = () => body.add(stream.read());
131 stream.closeHandler = () => sendResponseHandler(response,
132 body.toString());
131 }; 133 };
132 }; 134 };
133 135
134 void join() { 136 void join() {
135 HTTPClientResponse response; 137 void joinResponseHandler(HTTPClientResponse response, String data) {
136
137 void joinResponseHandler(String data) {
138 var responseData = parseResponse(response, data, "join"); 138 var responseData = parseResponse(response, data, "join");
139 if (responseData == null) return; 139 if (responseData == null) return;
140 sessionId = responseData["sessionId"]; 140 sessionId = responseData["sessionId"];
141 141
142 messageCount = 0; 142 messageCount = 0;
143 sendMessageCount = 0; 143 sendMessageCount = 0;
144 receiveMessageCount = 0; 144 receiveMessageCount = 0;
145 sendMessage(); 145 sendMessage();
146 } 146 }
147 147
148 Map joinRequest = new Map(); 148 Map joinRequest = new Map();
149 joinRequest["request"] = "join"; 149 joinRequest["request"] = "join";
150 joinRequest["handle"] = "test1"; 150 joinRequest["handle"] = "test1";
151 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/join"); 151 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/join");
152 conn.requestHandler = (HTTPClientRequest request) { 152 conn.requestHandler = (HTTPClientRequest request) {
153 request.writeString(JSON.stringify(joinRequest)); 153 request.writeString(JSON.stringify(joinRequest));
154 request.outputStream.close(); 154 request.outputStream.close();
155 }; 155 };
156 conn.responseHandler = (HTTPClientResponse r) { 156 conn.responseHandler = (HTTPClientResponse response) {
157 response = r; 157 StringInputStream stream = new StringInputStream(response.inputStream);
158 response.dataEnd = joinResponseHandler; 158 StringBuffer body = new StringBuffer();
159 stream.dataHandler = () => body.add(stream.read());
160 stream.closeHandler = () => joinResponseHandler(response,
161 body.toString());
159 }; 162 };
160 } 163 }
161 164
162 // Create a HTTP client factory. 165 // Create a HTTP client factory.
163 httpClient = new HTTPClient(); 166 httpClient = new HTTPClient();
164 port = 8123; 167 port = 8123;
165 168
166 // Start the client by joining the chat topic. 169 // Start the client by joining the chat topic.
167 join(); 170 join();
168 } 171 }
169 172
170 int messagesToSend; 173 int messagesToSend;
171 bool verbose; 174 bool verbose;
172 } 175 }
173 176
174 177
175 void main () { 178 void main () {
176 ChatStressClient stresser = new ChatStressClient(); 179 ChatStressClient stresser = new ChatStressClient();
177 stresser.run(); 180 stresser.run();
178 } 181 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698