Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 part of dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Web socket status codes used when closing a web socket connection. | 8 * Web socket status codes used when closing a web socket connection. |
| 9 */ | 9 */ |
| 10 abstract class WebSocketStatus { | 10 abstract class WebSocketStatus { |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 61 * select what protocol to use, if any were provided by the client. | 61 * select what protocol to use, if any were provided by the client. |
| 62 * [protocolSelector] is should return either a [String] or a [Future] | 62 * [protocolSelector] is should return either a [String] or a [Future] |
| 63 * completing with a [String]. The [String] must exist in the list of | 63 * completing with a [String]. The [String] must exist in the list of |
| 64 * protocols. | 64 * protocols. |
| 65 */ | 65 */ |
| 66 factory WebSocketTransformer({protocolSelector(List<String> protocols)}) | 66 factory WebSocketTransformer({protocolSelector(List<String> protocols)}) |
| 67 => new _WebSocketTransformerImpl(protocolSelector); | 67 => new _WebSocketTransformerImpl(protocolSelector); |
| 68 | 68 |
| 69 /** | 69 /** |
| 70 * Upgrades a [HttpRequest] to a [WebSocket] connection. If the | 70 * Upgrades a [HttpRequest] to a [WebSocket] connection. If the |
| 71 * request is not a valid web socket upgrade request a HTTP response | 71 * request is not a valid web socket upgrade request a HTTP response |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
a HTTP -> an HTTP
| |
| 72 * with status code 500 will be returned. Otherwise the returned | 72 * with status code 500 will be returned. Otherwise the returned |
| 73 * future will complete with the [WebSocket] when the upgrade pocess | 73 * future will complete with the [WebSocket] when the upgrade pocess |
| 74 * is complete. | 74 * is complete. |
| 75 * | 75 * |
| 76 * If [protocolSelector] is provided, [protocolSelector] will be called to | 76 * If [protocolSelector] is provided, [protocolSelector] will be called to |
| 77 * select what protocol to use, if any were provided by the client. | 77 * select what protocol to use, if any were provided by the client. |
| 78 * [protocolSelector] is should return either a [String] or a [Future] | 78 * [protocolSelector] is should return either a [String] or a [Future] |
| 79 * completing with a [String]. The [String] must exist in the list of | 79 * completing with a [String]. The [String] must exist in the list of |
| 80 * protocols. | 80 * protocols. |
| 81 */ | 81 */ |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 118 * There are never two outstanding pings at any given time, and the next ping | 118 * There are never two outstanding pings at any given time, and the next ping |
| 119 * timer starts when the pong is received. | 119 * timer starts when the pong is received. |
| 120 * | 120 * |
| 121 * Set the [pingInterval] to `null` to disable sending ping messages. | 121 * Set the [pingInterval] to `null` to disable sending ping messages. |
| 122 * | 122 * |
| 123 * The default value is `null`. | 123 * The default value is `null`. |
| 124 */ | 124 */ |
| 125 Duration pingInterval; | 125 Duration pingInterval; |
| 126 | 126 |
| 127 /** | 127 /** |
| 128 * Create a new web socket connection. The URL supplied in [url] | 128 * Create a new web socket connection. The URL supplied in [url] |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
I think "web socket" is usually written "WebSocket
Søren Gjesse
2015/01/14 13:54:26
Done.
| |
| 129 * must use the scheme [:ws:] or [:wss:]. The [protocols] argument is | 129 * must use the scheme `ws` or `wss`. |
| 130 * specifying the subprotocols the client is willing to speak. | 130 * |
| 131 * The [protocols] argument is specifying the subprotocols the | |
| 132 * client is willing to speak. | |
| 133 * | |
| 134 * The [headers] argument is specifying additional HTTP headers for | |
| 135 * the initial upgrade request. This would typically be the `Origin` | |
| 136 * header and potentially cookies. The key of the map are the header | |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
The key -> The keys.
Søren Gjesse
2015/01/14 13:54:26
Done.
| |
| 137 * fields and the values are either String or List<String>. | |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
What is an "upgrade request"? Either say something
Søren Gjesse
2015/01/14 13:54:26
Changed
the initial upgrade request
to
setting
| |
| 138 * | |
| 139 * Even if [headers] is provided, there are a number of headers | |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
Drop the "even" part. Just go directly to the fact
Søren Gjesse
2015/01/14 13:54:26
Done.
| |
| 140 * which are controlled by the web socket connection process. These | |
| 141 * headers are: `connection`, `sec-websocket-version`, | |
| 142 * `sec-websocket-key`, `upgrade` and `sec-websocket-protocol`. If | |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
Put the headers in alphabetical order. It looks ra
Søren Gjesse
2015/01/14 13:54:26
Done.
| |
| 143 * any of these are passed in the `headers` they will be ignored. | |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
add "map" after `headers`. Just "the headers" does
Søren Gjesse
2015/01/14 13:54:26
Done.
| |
| 131 */ | 144 */ |
| 132 static Future<WebSocket> connect(String url, | 145 static Future<WebSocket> connect(String url, |
| 133 {List<String> protocols: const []}) => | 146 {Iterable<String> protocols: const [], |
|
Lasse Reichstein Nielsen
2015/01/14 10:49:21
I'd use "null" as default, and then do the dispatc
Søren Gjesse
2015/01/14 13:54:26
Done.
| |
| 134 _WebSocketImpl.connect(url, protocols); | 147 Map<String, dynamic> headers}) => |
| 148 _WebSocketImpl.connect(url, protocols, headers); | |
| 135 | 149 |
| 136 @Deprecated('This constructor will be removed in Dart 2.0. Use `implements`' | 150 @Deprecated('This constructor will be removed in Dart 2.0. Use `implements`' |
| 137 ' instead of `extends` if implementing this abstract class.') | 151 ' instead of `extends` if implementing this abstract class.') |
| 138 WebSocket(); | 152 WebSocket(); |
| 139 | 153 |
| 140 /** | 154 /** |
| 141 * Creates a WebSocket from an already-upgraded socket. | 155 * Creates a WebSocket from an already-upgraded socket. |
| 142 * | 156 * |
| 143 * The initial WebSocket handshake must have occurred prior to this call. A | 157 * The initial WebSocket handshake must have occurred prior to this call. A |
| 144 * WebSocket client can automatically perform the handshake using | 158 * WebSocket client can automatically perform the handshake using |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 214 */ | 228 */ |
| 215 Future addStream(Stream stream); | 229 Future addStream(Stream stream); |
| 216 } | 230 } |
| 217 | 231 |
| 218 | 232 |
| 219 class WebSocketException implements IOException { | 233 class WebSocketException implements IOException { |
| 220 final String message; | 234 final String message; |
| 221 const WebSocketException([this.message = ""]); | 235 const WebSocketException([this.message = ""]); |
| 222 String toString() => "WebSocketException: $message"; | 236 String toString() => "WebSocketException: $message"; |
| 223 } | 237 } |
| OLD | NEW |