| 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 const String _webSocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; | 7 const String _webSocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; |
| 8 const String _clientNoContextTakeover = "client_no_context_takeover"; | 8 const String _clientNoContextTakeover = "client_no_context_takeover"; |
| 9 const String _serverNoContextTakeover = "server_no_context_takeover"; | 9 const String _serverNoContextTakeover = "server_no_context_takeover"; |
| 10 const String _clientMaxWindowBits = "client_max_window_bits"; | 10 const String _clientMaxWindowBits = "client_max_window_bits"; |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 Stream bind(Stream stream) { | 98 Stream bind(Stream stream) { |
| 99 return new Stream.eventTransformed(stream, (EventSink eventSink) { | 99 return new Stream.eventTransformed(stream, (EventSink eventSink) { |
| 100 if (_eventSink != null) { | 100 if (_eventSink != null) { |
| 101 throw new StateError("WebSocket transformer already used."); | 101 throw new StateError("WebSocket transformer already used."); |
| 102 } | 102 } |
| 103 _eventSink = eventSink; | 103 _eventSink = eventSink; |
| 104 return this; | 104 return this; |
| 105 }); | 105 }); |
| 106 } | 106 } |
| 107 | 107 |
| 108 void addError(Object error, [StackTrace stackTrace]) => | 108 void addError(Object error, [StackTrace stackTrace]) { |
| 109 _eventSink.addError(error, stackTrace); | 109 _eventSink.addError(error, stackTrace); |
| 110 } |
| 110 | 111 |
| 111 void close() => _eventSink.close(); | 112 void close() { _eventSink.close(); } |
| 112 | 113 |
| 113 /** | 114 /** |
| 114 * Process data received from the underlying communication channel. | 115 * Process data received from the underlying communication channel. |
| 115 */ | 116 */ |
| 116 void add(Uint8List buffer) { | 117 void add(Uint8List buffer) { |
| 117 int index = 0; | 118 int index = 0; |
| 118 int lastIndex = buffer.length; | 119 int lastIndex = buffer.length; |
| 119 if (_state == CLOSED) { | 120 if (_state == CLOSED) { |
| 120 throw new WebSocketException("Data on closed connection"); | 121 throw new WebSocketException("Data on closed connection"); |
| 121 } | 122 } |
| (...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 670 | 671 |
| 671 if (_deflateHelper != null) { | 672 if (_deflateHelper != null) { |
| 672 data = _deflateHelper.processOutgoingMessage(data); | 673 data = _deflateHelper.processOutgoingMessage(data); |
| 673 } | 674 } |
| 674 } else { | 675 } else { |
| 675 opcode = _WebSocketOpcode.TEXT; | 676 opcode = _WebSocketOpcode.TEXT; |
| 676 } | 677 } |
| 677 addFrame(opcode, data); | 678 addFrame(opcode, data); |
| 678 } | 679 } |
| 679 | 680 |
| 680 void addError(Object error, [StackTrace stackTrace]) => | 681 void addError(Object error, [StackTrace stackTrace]) { |
| 681 _eventSink.addError(error, stackTrace); | 682 _eventSink.addError(error, stackTrace); |
| 683 } |
| 682 | 684 |
| 683 void close() { | 685 void close() { |
| 684 int code = webSocket._outCloseCode; | 686 int code = webSocket._outCloseCode; |
| 685 String reason = webSocket._outCloseReason; | 687 String reason = webSocket._outCloseReason; |
| 686 List<int> data; | 688 List<int> data; |
| 687 if (code != null) { | 689 if (code != null) { |
| 688 data = new List<int>(); | 690 data = new List<int>(); |
| 689 data.add((code >> 8) & 0xFF); | 691 data.add((code >> 8) & 0xFF); |
| 690 data.add(code & 0xFF); | 692 data.add(code & 0xFF); |
| 691 if (reason != null) { | 693 if (reason != null) { |
| (...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1154 }); | 1156 }); |
| 1155 }); | 1157 }); |
| 1156 } | 1158 } |
| 1157 | 1159 |
| 1158 int get readyState => _readyState; | 1160 int get readyState => _readyState; |
| 1159 | 1161 |
| 1160 String get extensions => null; | 1162 String get extensions => null; |
| 1161 int get closeCode => _closeCode; | 1163 int get closeCode => _closeCode; |
| 1162 String get closeReason => _closeReason; | 1164 String get closeReason => _closeReason; |
| 1163 | 1165 |
| 1164 void add(data) => _sink.add(data); | 1166 void add(data) { _sink.add(data); } |
| 1165 void addError(error, [StackTrace stackTrace]) => | 1167 void addError(error, [StackTrace stackTrace]) { |
| 1166 _sink.addError(error, stackTrace); | 1168 _sink.addError(error, stackTrace); |
| 1169 } |
| 1167 Future addStream(Stream stream) => _sink.addStream(stream); | 1170 Future addStream(Stream stream) => _sink.addStream(stream); |
| 1168 Future get done => _sink.done; | 1171 Future get done => _sink.done; |
| 1169 | 1172 |
| 1170 Future close([int code, String reason]) { | 1173 Future close([int code, String reason]) { |
| 1171 if (_isReservedStatusCode(code)) { | 1174 if (_isReservedStatusCode(code)) { |
| 1172 throw new WebSocketException("Reserved status code $code"); | 1175 throw new WebSocketException("Reserved status code $code"); |
| 1173 } | 1176 } |
| 1174 if (_outCloseCode == null) { | 1177 if (_outCloseCode == null) { |
| 1175 _outCloseCode = code; | 1178 _outCloseCode = code; |
| 1176 _outCloseReason = reason; | 1179 _outCloseReason = reason; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1241 return code != null && | 1244 return code != null && |
| 1242 (code < WebSocketStatus.NORMAL_CLOSURE || | 1245 (code < WebSocketStatus.NORMAL_CLOSURE || |
| 1243 code == WebSocketStatus.RESERVED_1004 || | 1246 code == WebSocketStatus.RESERVED_1004 || |
| 1244 code == WebSocketStatus.NO_STATUS_RECEIVED || | 1247 code == WebSocketStatus.NO_STATUS_RECEIVED || |
| 1245 code == WebSocketStatus.ABNORMAL_CLOSURE || | 1248 code == WebSocketStatus.ABNORMAL_CLOSURE || |
| 1246 (code > WebSocketStatus.INTERNAL_SERVER_ERROR && | 1249 (code > WebSocketStatus.INTERNAL_SERVER_ERROR && |
| 1247 code < WebSocketStatus.RESERVED_1015) || | 1250 code < WebSocketStatus.RESERVED_1015) || |
| 1248 (code >= WebSocketStatus.RESERVED_1015 && code < 3000)); | 1251 (code >= WebSocketStatus.RESERVED_1015 && code < 3000)); |
| 1249 } | 1252 } |
| 1250 } | 1253 } |
| OLD | NEW |