Index: runtime/bin/websocket.dart |
diff --git a/runtime/bin/websocket.dart b/runtime/bin/websocket.dart |
index f7a36f8fcfde41fe3e50c8a29e0e99ba28968bc9..342078a3992b7fb19743fc214f40b76995cf7590 100644 |
--- a/runtime/bin/websocket.dart |
+++ b/runtime/bin/websocket.dart |
@@ -34,7 +34,7 @@ interface WebSocketHandler default _WebSocketHandler { |
/** |
- * Web socket connection. |
+ * Server web socket connection. |
*/ |
interface WebSocketConnection { |
/** |
@@ -71,6 +71,76 @@ interface WebSocketConnection { |
} |
+/** |
+ * Client web socket connection. |
+ */ |
+interface WebSocketClientConnection default _WebSocketClientConnection { |
+ /** |
+ * Creates a new web socket client connection based on a HTTP client |
+ * connection. The HTTP client connection must be freshly opened. |
+ */ |
+ WebSocketClientConnection(HttpClientConnection conn, |
Anders Johnsen
2012/05/02 07:51:57
Should we add a convenient constructor that just t
Søren Gjesse
2012/05/02 10:22:45
After having discussed this off-line we will make
|
+ [List<String> protocols]); |
+ |
+ /** |
+ * Sets the callback to be called when the request object for the |
+ * opening handshake request is ready. This callback can be used if |
+ * one need to add additional headers to the opening handshake |
+ * request. |
+ */ |
+ void set onRequest(void callback(HttpClientRequest request)); |
+ |
+ /** |
+ * Sets the callback to be called when a web socket connection has |
+ * been established. |
+ */ |
+ void set onOpen(void callback()); |
+ |
+ /** |
+ * Sets the callback to be called when a message have been |
+ * received. The type on [message] is either [:String:] or |
Mads Ager (google)
2012/05/02 08:18:17
The type on -> The type of
Søren Gjesse
2012/05/02 10:22:45
Done.
|
+ * [:List<int>:] depending on whether it is a text or binary |
+ * message. If the message is empty [message] will be [:null:]. |
+ */ |
+ void set onMessage(void callback(message)); |
Anders Johnsen
2012/05/02 07:51:57
Add 'Object' type to match send.
Søren Gjesse
2012/05/02 10:22:45
Removed Object from send instead.
|
+ |
+ /** |
+ * Sets the callback to be called when the web socket connection is |
+ * closed. |
+ */ |
+ void set onClosed(void callback(int status, String reason)); |
+ |
+ /** |
+ * Sets the callback to be called when the response object for the |
+ * opening handshake did not cause a web socket connection |
+ * upgrade. This will be called in case the response status code is |
+ * not 101 (Switching Protocols). If this callback is not set the |
+ * [:onError:] callback will be called if the server did not upgrade |
+ * the connection. |
+ */ |
+ void set onNoUpgrade(void callback(HttpClientResponse request)); |
Anders Johnsen
2012/05/02 07:51:57
request->response.
Søren Gjesse
2012/05/02 10:22:45
Done.
|
+ |
+ /** |
+ * Sets the callback to be called when the web socket connection |
+ * encountered an error. |
+ */ |
+ void set onError(void callback(e)); |
+ |
+ /** |
+ * Sends a message. The [message] must be a [:String:] a |
Mads Ager (google)
2012/05/02 08:18:17
[:String:] or a
Søren Gjesse
2012/05/02 10:22:45
Done.
|
+ * [:List<int>:]. To send an empty message use either an empty |
+ * [:String:] or an empty [:List<int>:]. [:null:] cannot be used. |
+ */ |
+ send(Object message); |
+ |
+ /** |
+ * Close the web socket connection. The default value for [status] |
+ * and [reason] are [:null:]. |
+ */ |
+ close([int status, String reason]); |
+} |
+ |
+ |
class WebSocketException implements Exception { |
const WebSocketException([String this.message = ""]); |
String toString() => "WebSocketException: $message"; |