| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// @assertion |
| /// WebSocket.fromUpgradedSocket( |
| /// Socket socket, { |
| /// String protocol, |
| /// bool serverSide, |
| /// CompressionOptions compression: CompressionOptions.compressionDefault |
| /// }) |
| /// Creates a WebSocket from an already-upgraded socket. |
| /// |
| /// The initial WebSocket handshake must have occurred prior to this call. A |
| /// WebSocket client can automatically perform the handshake using |
| /// WebSocket.connect, while a server can do so using |
| /// WebSocketTransformer.upgrade. To manually upgrade an HttpRequest, |
| /// HttpResponse.detachSocket may be called. |
| /// |
| /// protocol should be the protocol negotiated by this handshake, if any. |
| /// |
| /// serverSide must be passed explicitly. If it's false, the WebSocket will act |
| /// as the client and mask the messages it sends. If it's true, it will act as |
| /// the server and will not mask its messages. |
| /// |
| /// If compression is provided, the WebSocket created will be configured to |
| /// negotiate with the specified CompressionOptions. If none is specified then |
| /// the WebSocket will be created with the default CompressionOptions. |
| /// |
| /// @description Checks that this constructor creates a new WebSocket object. |
| /// @author ngl@unipro.ru |
| |
| import "dart:io"; |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| HttpServer.bind("127.0.0.1", 0).then((server) { |
| server.listen((request) {}); |
| var socket1 = Socket.connect("127.0.0.1", server.port); |
| socket1.then((socket) { |
| var websocket = new WebSocket.fromUpgradedSocket(socket, |
| protocol: "p1.com", serverSide: true); |
| Expect.isTrue(websocket is WebSocket); |
| Expect.runtimeIsType<WebSocket>(websocket); |
| websocket.close(); |
| socket.done.then((_) { |
| socket.destroy(); |
| server.close(); |
| }); |
| }); |
| }); |
| } |