OLD | NEW |
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 trydart.projectServer; | 5 library trydart.projectServer; |
6 | 6 |
7 import 'dart:io'; | 7 import 'dart:io'; |
8 | 8 |
9 import 'dart:async' show | 9 import 'dart:async' show |
10 Future; | 10 Future, |
| 11 Stream; |
11 | 12 |
12 import 'dart:convert' show | 13 import 'dart:convert' show |
13 HtmlEscape, | 14 HtmlEscape, |
14 JSON, | 15 JSON, |
15 UTF8; | 16 UTF8; |
16 | 17 |
17 class WatchHandler { | 18 class WatchHandler { |
18 final WebSocket socket; | 19 final WebSocket socket; |
19 | 20 |
20 final Set<String> watchedFiles; | 21 final Set<String> watchedFiles; |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 print('Request for ${request.uri} ${response.statusCode}'); | 139 print('Request for ${request.uri} ${response.statusCode}'); |
139 } | 140 } |
140 | 141 |
141 notFound(path) { | 142 notFound(path) { |
142 response.statusCode = HttpStatus.NOT_FOUND; | 143 response.statusCode = HttpStatus.NOT_FOUND; |
143 response.write(htmlInfo('Not Found', | 144 response.write(htmlInfo('Not Found', |
144 'The file "$path" could not be found.')); | 145 'The file "$path" could not be found.')); |
145 response.close(); | 146 response.close(); |
146 } | 147 } |
147 | 148 |
148 redirect(String location) { | |
149 response.statusCode = HttpStatus.FOUND; | |
150 response.headers.add(HttpHeaders.LOCATION, location); | |
151 response.close(); | |
152 } | |
153 | |
154 badRequest(String problem) { | 149 badRequest(String problem) { |
155 response.statusCode = HttpStatus.BAD_REQUEST; | 150 response.statusCode = HttpStatus.BAD_REQUEST; |
156 response.write(htmlInfo("Bad request", | 151 response.write(htmlInfo("Bad request", |
157 "Bad request '${request.uri}': $problem")); | 152 "Bad request '${request.uri}': $problem")); |
158 response.close(); | 153 response.close(); |
159 } | 154 } |
160 | 155 |
161 internalError(error, stack) { | 156 internalError(error, stack) { |
162 print(error); | 157 print(error); |
163 if (stack != null) print(stack); | 158 if (stack != null) print(stack); |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
451 Conversation.packageRoot = Uri.base.resolve(arguments[4]); | 446 Conversation.packageRoot = Uri.base.resolve(arguments[4]); |
452 } | 447 } |
453 HttpServer.bind(host, port).then((HttpServer server) { | 448 HttpServer.bind(host, port).then((HttpServer server) { |
454 print('HTTP server started on http://$host:${server.port}/'); | 449 print('HTTP server started on http://$host:${server.port}/'); |
455 server.listen(Conversation.onRequest, onError: Conversation.onError); | 450 server.listen(Conversation.onRequest, onError: Conversation.onError); |
456 }).catchError((e) { | 451 }).catchError((e) { |
457 print("HttpServer.bind error: $e"); | 452 print("HttpServer.bind error: $e"); |
458 exit(1); | 453 exit(1); |
459 }); | 454 }); |
460 } | 455 } |
OLD | NEW |