Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 /** | |
| 6 * The web socket protocol is implemented by a HTTP server handler | |
| 7 * which can be instantiated like this: | |
| 8 * | |
| 9 * WebSocketHandler wsHandler = new WebSocketHandler(); | |
| 10 * | |
| 11 * and then its onRequest method can be assigned to the HTTP server, e.g. | |
| 12 * | |
| 13 * server.defaultHandler = wsHandler.onRequest; | |
| 14 * | |
| 15 * or | |
| 16 * | |
| 17 * server.addRequestHandler((req) => reg.path == "/ws", wsHandler.onRequest); | |
| 18 * | |
| 19 */ | |
| 20 interface WebSocketHandler default _WebSocketHandler { | |
| 21 WebSocketHandler(); | |
| 22 | |
| 23 /** | |
| 24 * Request handler to be registered with the HTTP server. | |
| 25 */ | |
| 26 void onRequest(HttpRequest request, HttpResponse response); | |
| 27 | |
| 28 /** | |
| 29 * Sets the callback to be called when a new web socket connection | |
| 30 * has been established. | |
| 31 */ | |
| 32 void set onConnection(callback(WebSocketConnection connection)); | |
| 33 } | |
| 34 | |
| 35 | |
| 36 /** | |
| 37 * Web socket connection. | |
| 38 */ | |
| 39 interface WebSocketConnection { | |
| 40 /** | |
| 41 * Sets the callback to be called when a message have been | |
| 42 * received. The type on [message] is either [:String:] or | |
| 43 * [:List<int>:] depending on whether it is a text or binary | |
| 44 * message. If the message is empty [message] will be [:null:]. | |
| 45 */ | |
| 46 void set onMessage(void callback(Object message)); | |
|
vsm
2012/04/25 16:45:18
Consider making this consistent with onError below
Søren Gjesse
2012/04/26 09:37:44
Done. I agree with the distinction between Object
| |
| 47 | |
| 48 /** | |
| 49 * Sets the callback to be called when the web socket connection is | |
| 50 * closed. | |
| 51 */ | |
| 52 void set onClosed(void callback(int status, String reason)); | |
|
vsm
2012/04/25 16:45:18
onClose to be consistent with w3c?
Søren Gjesse
2012/04/26 09:37:44
This is problematic. All over dart:io we are using
| |
| 53 | |
| 54 /** | |
| 55 * Sets the callback to be called when the web socket connection | |
| 56 * encountered an error. | |
| 57 */ | |
| 58 void set onError(void callback(e)); | |
| 59 | |
| 60 /** | |
|
vsm
2012/04/25 16:45:18
Does onOpen (from the spec) make sense here?
Søren Gjesse
2012/04/26 09:37:44
As this is the server side the onOpen corresponds
| |
| 61 * Sends a message. The [message] must be a [:String:] a | |
| 62 * [:List<int>:] or [:null:]. | |
| 63 */ | |
| 64 send(Object message); | |
| 65 | |
| 66 /** | |
| 67 * Close the web socket connection. The default value for [status] | |
| 68 * and [reason] are [:null:]. | |
| 69 */ | |
| 70 close([int status, String reason]); | |
| 71 } | |
| 72 | |
| 73 | |
| 74 class WebSocketException implements Exception { | |
| 75 const WebSocketException([String this.message = ""]); | |
| 76 String toString() => "WebSocketException: $message"; | |
| 77 final String message; | |
| 78 } | |
| OLD | NEW |