mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
61 lines
1.9 KiB
Plaintext
61 lines
1.9 KiB
Plaintext
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
[DartPackage="mojo_services"]
|
|
module mojo;
|
|
|
|
import "mojo/public/interfaces/network/network_error.mojom";
|
|
|
|
interface WebSocket {
|
|
enum MessageType {
|
|
CONTINUATION,
|
|
TEXT,
|
|
BINARY
|
|
};
|
|
const uint16 kAbnormalCloseCode = 1006; // stolen from websocket_bridge
|
|
|
|
// Initiates a WebSocket connection to the given url. |send_stream| is a data
|
|
// pipe which should remain open for the lifetime of the WebSocket. Data
|
|
// to send over the WebSocket should be written to the producer end of the
|
|
// |send_stream|.
|
|
Connect(string url,
|
|
array<string> protocols,
|
|
string origin,
|
|
handle<data_pipe_consumer> send_stream,
|
|
WebSocketClient client);
|
|
|
|
// Called after writing |num_bytes| worth of data to the WebSocket's
|
|
// |send_stream|.
|
|
Send(bool fin, MessageType type, uint32 num_bytes);
|
|
|
|
FlowControl(int64 quota);
|
|
|
|
Close(uint16 code, string reason);
|
|
};
|
|
|
|
interface WebSocketClient {
|
|
// Called in response to a WebSocket.Connect call to indicate success
|
|
// |receive_stream| is a data pipe which where incoming data from
|
|
// the server is written.
|
|
DidConnect(string selected_subprotocol,
|
|
string extensions,
|
|
handle<data_pipe_consumer> receive_stream);
|
|
|
|
// Called when there is |num_bytes| worth of incoming data available on the
|
|
// |receive_stream|.
|
|
DidReceiveData(bool fin, WebSocket.MessageType type, uint32 num_bytes);
|
|
|
|
DidReceiveFlowControl(int64 quota);
|
|
|
|
DidFail(string message);
|
|
|
|
DidClose(bool was_clean, uint16 code, string reason);
|
|
|
|
// Blink has 3 extra methods that we don't implement, because they are used
|
|
// for the inspector:
|
|
// didStartOpeningHandshake
|
|
// didFinishOpeningHandshake
|
|
// didStartClosingHandshake
|
|
};
|