| 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 | 8 |
| 9 class _WebSocketMessageType { | 9 class _WebSocketMessageType { |
| 10 static const int NONE = 0; | 10 static const int NONE = 0; |
| (...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 } | 456 } |
| 457 if (message is _WebSocketPing) { | 457 if (message is _WebSocketPing) { |
| 458 addFrame(_WebSocketOpcode.PING, message.payload, sink); | 458 addFrame(_WebSocketOpcode.PING, message.payload, sink); |
| 459 return; | 459 return; |
| 460 } | 460 } |
| 461 List<int> data; | 461 List<int> data; |
| 462 int opcode; | 462 int opcode; |
| 463 if (message != null) { | 463 if (message != null) { |
| 464 if (message is String) { | 464 if (message is String) { |
| 465 opcode = _WebSocketOpcode.TEXT; | 465 opcode = _WebSocketOpcode.TEXT; |
| 466 data = _encodeString(message); | 466 data = UTF8.encode(message); |
| 467 } else { | 467 } else { |
| 468 if (message is !List<int>) { | 468 if (message is !List<int>) { |
| 469 throw new ArgumentError(message); | 469 throw new ArgumentError(message); |
| 470 } | 470 } |
| 471 opcode = _WebSocketOpcode.BINARY; | 471 opcode = _WebSocketOpcode.BINARY; |
| 472 data = message; | 472 data = message; |
| 473 } | 473 } |
| 474 } else { | 474 } else { |
| 475 opcode = _WebSocketOpcode.TEXT; | 475 opcode = _WebSocketOpcode.TEXT; |
| 476 } | 476 } |
| 477 addFrame(opcode, data, sink); | 477 addFrame(opcode, data, sink); |
| 478 } | 478 } |
| 479 | 479 |
| 480 void handleDone(EventSink<List<int>> sink) { | 480 void handleDone(EventSink<List<int>> sink) { |
| 481 int code = webSocket._outCloseCode; | 481 int code = webSocket._outCloseCode; |
| 482 String reason = webSocket._outCloseReason; | 482 String reason = webSocket._outCloseReason; |
| 483 List<int> data; | 483 List<int> data; |
| 484 if (code != null) { | 484 if (code != null) { |
| 485 data = new List<int>(); | 485 data = new List<int>(); |
| 486 data.add((code >> 8) & 0xFF); | 486 data.add((code >> 8) & 0xFF); |
| 487 data.add(code & 0xFF); | 487 data.add(code & 0xFF); |
| 488 if (reason != null) { | 488 if (reason != null) { |
| 489 data.addAll(_encodeString(reason)); | 489 data.addAll(UTF8.encode(reason)); |
| 490 } | 490 } |
| 491 } | 491 } |
| 492 addFrame(_WebSocketOpcode.CLOSE, data, sink); | 492 addFrame(_WebSocketOpcode.CLOSE, data, sink); |
| 493 sink.close(); | 493 sink.close(); |
| 494 } | 494 } |
| 495 | 495 |
| 496 void addFrame(int opcode, List<int> data, EventSink<List<int>> sink) { | 496 void addFrame(int opcode, List<int> data, EventSink<List<int>> sink) { |
| 497 createFrame(opcode, data, webSocket._serverSide).forEach(sink.add); | 497 createFrame(opcode, data, webSocket._serverSide).forEach(sink.add); |
| 498 } | 498 } |
| 499 | 499 |
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 874 (code < WebSocketStatus.NORMAL_CLOSURE || | 874 (code < WebSocketStatus.NORMAL_CLOSURE || |
| 875 code == WebSocketStatus.RESERVED_1004 || | 875 code == WebSocketStatus.RESERVED_1004 || |
| 876 code == WebSocketStatus.NO_STATUS_RECEIVED || | 876 code == WebSocketStatus.NO_STATUS_RECEIVED || |
| 877 code == WebSocketStatus.ABNORMAL_CLOSURE || | 877 code == WebSocketStatus.ABNORMAL_CLOSURE || |
| 878 (code > WebSocketStatus.INTERNAL_SERVER_ERROR && | 878 (code > WebSocketStatus.INTERNAL_SERVER_ERROR && |
| 879 code < WebSocketStatus.RESERVED_1015) || | 879 code < WebSocketStatus.RESERVED_1015) || |
| 880 (code >= WebSocketStatus.RESERVED_1015 && | 880 (code >= WebSocketStatus.RESERVED_1015 && |
| 881 code < 3000)); | 881 code < 3000)); |
| 882 } | 882 } |
| 883 } | 883 } |
| OLD | NEW |