Index: sdk/lib/io/websocket_impl.dart |
diff --git a/sdk/lib/io/websocket_impl.dart b/sdk/lib/io/websocket_impl.dart |
index 872cd321ad7b223deadefd840311925fe9f123b8..6683bdeeb048d19a25272d77c7995bdbb8e60c65 100644 |
--- a/sdk/lib/io/websocket_impl.dart |
+++ b/sdk/lib/io/websocket_impl.dart |
@@ -769,7 +769,8 @@ class _WebSocketImpl extends Stream with _ServiceObject implements WebSocket { |
static final HttpClient _httpClient = new HttpClient(); |
- static Future<WebSocket> connect(String url, List<String> protocols) { |
+ static Future<WebSocket> connect( |
+ String url, List<String> protocols, Function onRequest) { |
Uri uri = Uri.parse(url); |
if (uri.scheme != "ws" && uri.scheme != "wss") { |
throw new WebSocketException("Unsupported URL scheme '${uri.scheme}'"); |
@@ -800,12 +801,18 @@ class _WebSocketImpl extends Stream with _ServiceObject implements WebSocket { |
..add(HttpHeaders.CONNECTION, "Upgrade") |
..set(HttpHeaders.UPGRADE, "websocket") |
..set("Sec-WebSocket-Key", nonce) |
- ..set("Cache-Control", "no-cache") |
kustermann
2015/01/09 14:45:12
Why was this removed?
Søren Gjesse
2015/01/12 15:36:34
I thought it was not needed as a proxy should neve
|
..set("Sec-WebSocket-Version", "13"); |
if (protocols.isNotEmpty) { |
request.headers.add("Sec-WebSocket-Protocol", protocols); |
} |
- return request.close(); |
+ if (onRequest != null) { |
+ var result = onRequest(request); |
+ return result is Future |
Lasse Reichstein Nielsen
2015/01/12 15:11:56
Parentheses around (result is Future) expression (
Søren Gjesse
2015/01/12 15:36:34
Dropped this code.
|
+ ? result.then((_) => request.close()) |
+ : request.close(); |
+ } else { |
+ return request.close(); |
+ } |
Lasse Reichstein Nielsen
2015/01/12 15:11:56
Rewrite as:
if (onRequest != null) {
var result
Søren Gjesse
2015/01/12 15:36:34
Dropped this code.
|
}) |
.then((response) { |
void error(String message) { |