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

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: Addressed review comments 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
« no previous file with comments | « samples/chat/chat_server_lib.dart ('k') | samples/chat/dart_client/chat.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
65 response.dataEnd = leaveResponseHandler; 64 StringBuffer body = new StringBuffer();
65 stream.dataHandler = () => body.add(stream.read());
66 stream.closeHandler = () {
67 leaveResponseHandler(response, body.toString());
68 };
66 }; 69 };
67 } 70 }
68 71
69 var sendMessage; 72 var sendMessage;
70 void receive() { 73 void receive() {
71 HTTPClientResponse response; 74 void receiveResponseHandler(HTTPClientResponse response, String data) {
72
73 void receiveResponseHandler(String data) {
74 var responseData = parseResponse(response, data, "receive"); 75 var responseData = parseResponse(response, data, "receive");
75 if (responseData == null) return; 76 if (responseData == null) return;
76 if (responseData["disconnect"] == true) return; 77 if (responseData["disconnect"] == true) return;
77 78
78 sendMessage(); 79 sendMessage();
79 } 80 }
80 81
81 Map messageRequest = new Map(); 82 Map messageRequest = new Map();
82 messageRequest["request"] = "receive"; 83 messageRequest["request"] = "receive";
83 messageRequest["sessionId"] = sessionId; 84 messageRequest["sessionId"] = sessionId;
84 messageRequest["nextMessage"] = receiveMessageCount; 85 messageRequest["nextMessage"] = receiveMessageCount;
85 messageRequest["maxMessages"] = 100; 86 messageRequest["maxMessages"] = 100;
86 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/receive") ; 87 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/receive") ;
87 conn.requestHandler = (HTTPClientRequest request) { 88 conn.requestHandler = (HTTPClientRequest request) {
88 request.writeString(JSON.stringify(messageRequest)); 89 request.writeString(JSON.stringify(messageRequest));
89 request.outputStream.close(); 90 request.outputStream.close();
90 }; 91 };
91 conn.responseHandler = (HTTPClientResponse r) { 92 conn.responseHandler = (HTTPClientResponse response) {
92 response = r; 93 StringInputStream stream = new StringInputStream(response.inputStream);
93 response.dataEnd = receiveResponseHandler; 94 StringBuffer body = new StringBuffer();
95 stream.dataHandler = () => body.add(stream.read());
96 stream.closeHandler = () {
97 receiveResponseHandler(response, body.toString());
98 };
94 }; 99 };
95 } 100 }
96 101
97 sendMessage = () { 102 sendMessage = () {
98 HTTPClientRequest request; 103 void sendResponseHandler(HTTPClientResponse response, String data) {
99 HTTPClientResponse response;
100
101 void sendResponseHandler(String data) {
102 var responseData = parseResponse(response, data, "message"); 104 var responseData = parseResponse(response, data, "message");
103 if (responseData == null) return; 105 if (responseData == null) return;
104 106
105 sendMessageCount++; 107 sendMessageCount++;
106 if (verbose) { 108 if (verbose) {
107 if (sendMessageCount % 10 == 0) { 109 if (sendMessageCount % 10 == 0) {
108 print("$sendMessageCount messages"); 110 print("$sendMessageCount messages");
109 } 111 }
110 } 112 }
111 if (sendMessageCount < messagesToSend) { 113 if (sendMessageCount < messagesToSend) {
112 receive(); 114 receive();
113 } else { 115 } else {
114 leave(); 116 leave();
115 } 117 }
116 } 118 }
117 119
118 Map messageRequest = new Map(); 120 Map messageRequest = new Map();
119 messageRequest["request"] = "message"; 121 messageRequest["request"] = "message";
120 messageRequest["sessionId"] = sessionId; 122 messageRequest["sessionId"] = sessionId;
121 messageRequest["message"] = "message " + sendMessageCount; 123 messageRequest["message"] = "message " + sendMessageCount;
122 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/message") ; 124 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/message") ;
123 conn.requestHandler = (HTTPClientRequest request) { 125 conn.requestHandler = (HTTPClientRequest request) {
124 print(JSON.stringify(messageRequest));
125 request.writeString(JSON.stringify(messageRequest)); 126 request.writeString(JSON.stringify(messageRequest));
126 request.outputStream.close(); 127 request.outputStream.close();
127 }; 128 };
128 conn.responseHandler = (HTTPClientResponse r) { 129 conn.responseHandler = (HTTPClientResponse response) {
129 response = r; 130 StringInputStream stream = new StringInputStream(response.inputStream);
130 response.dataEnd = sendResponseHandler; 131 StringBuffer body = new StringBuffer();
132 stream.dataHandler = () => body.add(stream.read());
133 stream.closeHandler = () {
134 sendResponseHandler(response, body.toString());
135 };
131 }; 136 };
132 }; 137 };
133 138
134 void join() { 139 void join() {
135 HTTPClientResponse response; 140 void joinResponseHandler(HTTPClientResponse response, String data) {
136
137 void joinResponseHandler(String data) {
138 var responseData = parseResponse(response, data, "join"); 141 var responseData = parseResponse(response, data, "join");
139 if (responseData == null) return; 142 if (responseData == null) return;
140 sessionId = responseData["sessionId"]; 143 sessionId = responseData["sessionId"];
141 144
142 messageCount = 0; 145 messageCount = 0;
143 sendMessageCount = 0; 146 sendMessageCount = 0;
144 receiveMessageCount = 0; 147 receiveMessageCount = 0;
145 sendMessage(); 148 sendMessage();
146 } 149 }
147 150
148 Map joinRequest = new Map(); 151 Map joinRequest = new Map();
149 joinRequest["request"] = "join"; 152 joinRequest["request"] = "join";
150 joinRequest["handle"] = "test1"; 153 joinRequest["handle"] = "test1";
151 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/join"); 154 HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/join");
152 conn.requestHandler = (HTTPClientRequest request) { 155 conn.requestHandler = (HTTPClientRequest request) {
153 request.writeString(JSON.stringify(joinRequest)); 156 request.writeString(JSON.stringify(joinRequest));
154 request.outputStream.close(); 157 request.outputStream.close();
155 }; 158 };
156 conn.responseHandler = (HTTPClientResponse r) { 159 conn.responseHandler = (HTTPClientResponse response) {
157 response = r; 160 StringInputStream stream = new StringInputStream(response.inputStream);
158 response.dataEnd = joinResponseHandler; 161 StringBuffer body = new StringBuffer();
162 stream.dataHandler = () => body.add(stream.read());
163 stream.closeHandler = () {
164 joinResponseHandler(response, body.toString());
165 };
159 }; 166 };
160 } 167 }
161 168
162 // Create a HTTP client factory. 169 // Create a HTTP client factory.
163 httpClient = new HTTPClient(); 170 httpClient = new HTTPClient();
164 port = 8123; 171 port = 8123;
165 172
166 // Start the client by joining the chat topic. 173 // Start the client by joining the chat topic.
167 join(); 174 join();
168 } 175 }
169 176
170 int messagesToSend; 177 int messagesToSend;
171 bool verbose; 178 bool verbose;
172 } 179 }
173 180
174 181
175 void main () { 182 void main () {
176 ChatStressClient stresser = new ChatStressClient(); 183 ChatStressClient stresser = new ChatStressClient();
177 stresser.run(); 184 stresser.run();
178 } 185 }
OLDNEW
« no previous file with comments | « samples/chat/chat_server_lib.dart ('k') | samples/chat/dart_client/chat.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698