2024-01-01 14:58:21 -05:00
|
|
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
2021-01-06 10:57:28 -05:00
|
|
|
|
2023-07-03 14:36:55 -04:00
|
|
|
// deno-lint-ignore-file no-explicit-any no-var
|
2021-01-06 10:57:28 -05:00
|
|
|
|
|
|
|
/// <reference no-default-lib="true" />
|
|
|
|
/// <reference lib="esnext" />
|
|
|
|
|
2022-08-16 23:12:24 -04:00
|
|
|
/** @category Web Sockets */
|
2023-07-03 14:36:55 -04:00
|
|
|
declare interface CloseEventInit extends EventInit {
|
2021-01-06 10:57:28 -05:00
|
|
|
code?: number;
|
|
|
|
reason?: string;
|
|
|
|
wasClean?: boolean;
|
|
|
|
}
|
|
|
|
|
2022-08-16 23:12:24 -04:00
|
|
|
/** @category Web Sockets */
|
2023-07-03 14:36:55 -04:00
|
|
|
declare interface CloseEvent extends Event {
|
2021-01-06 10:57:28 -05:00
|
|
|
/**
|
|
|
|
* Returns the WebSocket connection close code provided by the server.
|
|
|
|
*/
|
|
|
|
readonly code: number;
|
|
|
|
/**
|
|
|
|
* Returns the WebSocket connection close reason provided by the server.
|
|
|
|
*/
|
|
|
|
readonly reason: string;
|
|
|
|
/**
|
|
|
|
* Returns true if the connection closed cleanly; false otherwise.
|
|
|
|
*/
|
|
|
|
readonly wasClean: boolean;
|
|
|
|
}
|
|
|
|
|
2023-07-03 14:36:55 -04:00
|
|
|
declare var CloseEvent: {
|
|
|
|
readonly prototype: CloseEvent;
|
|
|
|
new (type: string, eventInitDict?: CloseEventInit): CloseEvent;
|
|
|
|
};
|
|
|
|
|
2022-08-16 23:12:24 -04:00
|
|
|
/** @category Web Sockets */
|
2023-07-03 14:36:55 -04:00
|
|
|
declare interface WebSocketEventMap {
|
2021-01-06 10:57:28 -05:00
|
|
|
close: CloseEvent;
|
|
|
|
error: Event;
|
|
|
|
message: MessageEvent;
|
|
|
|
open: Event;
|
|
|
|
}
|
|
|
|
|
2022-02-13 08:47:46 -05:00
|
|
|
/**
|
2022-08-16 23:12:24 -04:00
|
|
|
* Provides the API for creating and managing a WebSocket connection to a
|
|
|
|
* server, as well as for sending and receiving data on the connection.
|
2022-02-13 08:47:46 -05:00
|
|
|
*
|
2022-08-16 23:12:24 -04:00
|
|
|
* If you are looking to create a WebSocket server, please take a look at
|
|
|
|
* `Deno.upgradeWebSocket()`.
|
|
|
|
*
|
2022-08-22 20:57:01 -04:00
|
|
|
* @tags allow-net
|
2022-08-16 23:12:24 -04:00
|
|
|
* @category Web Sockets
|
2022-02-13 08:47:46 -05:00
|
|
|
*/
|
2023-07-03 14:36:55 -04:00
|
|
|
declare interface WebSocket extends EventTarget {
|
2021-01-06 10:57:28 -05:00
|
|
|
/**
|
|
|
|
* Returns a string that indicates how binary data from the WebSocket object is exposed to scripts:
|
|
|
|
*
|
|
|
|
* Can be set, to change how binary data is returned. The default is "blob".
|
|
|
|
*/
|
|
|
|
binaryType: BinaryType;
|
|
|
|
/**
|
|
|
|
* Returns the number of bytes of application data (UTF-8 text and binary data) that have been queued using send() but not yet been transmitted to the network.
|
|
|
|
*
|
|
|
|
* If the WebSocket connection is closed, this attribute's value will only increase with each call to the send() method. (The number does not reset to zero once the connection closes.)
|
|
|
|
*/
|
|
|
|
readonly bufferedAmount: number;
|
|
|
|
/**
|
|
|
|
* Returns the extensions selected by the server, if any.
|
|
|
|
*/
|
|
|
|
readonly extensions: string;
|
|
|
|
onclose: ((this: WebSocket, ev: CloseEvent) => any) | null;
|
|
|
|
onerror: ((this: WebSocket, ev: Event | ErrorEvent) => any) | null;
|
|
|
|
onmessage: ((this: WebSocket, ev: MessageEvent) => any) | null;
|
|
|
|
onopen: ((this: WebSocket, ev: Event) => any) | null;
|
|
|
|
/**
|
|
|
|
* Returns the subprotocol selected by the server, if any. It can be used in conjunction with the array form of the constructor's second argument to perform subprotocol negotiation.
|
|
|
|
*/
|
|
|
|
readonly protocol: string;
|
|
|
|
/**
|
|
|
|
* Returns the state of the WebSocket object's connection. It can have the values described below.
|
|
|
|
*/
|
|
|
|
readonly readyState: number;
|
|
|
|
/**
|
|
|
|
* Returns the URL that was used to establish the WebSocket connection.
|
|
|
|
*/
|
|
|
|
readonly url: string;
|
|
|
|
/**
|
|
|
|
* Closes the WebSocket connection, optionally using code as the the WebSocket connection close code and reason as the the WebSocket connection close reason.
|
|
|
|
*/
|
|
|
|
close(code?: number, reason?: string): void;
|
|
|
|
/**
|
|
|
|
* Transmits data using the WebSocket connection. data can be a string, a Blob, an ArrayBuffer, or an ArrayBufferView.
|
|
|
|
*/
|
|
|
|
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
|
|
readonly CLOSED: number;
|
|
|
|
readonly CLOSING: number;
|
|
|
|
readonly CONNECTING: number;
|
|
|
|
readonly OPEN: number;
|
|
|
|
addEventListener<K extends keyof WebSocketEventMap>(
|
|
|
|
type: K,
|
|
|
|
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
|
|
|
options?: boolean | AddEventListenerOptions,
|
|
|
|
): void;
|
|
|
|
addEventListener(
|
|
|
|
type: string,
|
|
|
|
listener: EventListenerOrEventListenerObject,
|
|
|
|
options?: boolean | AddEventListenerOptions,
|
|
|
|
): void;
|
|
|
|
removeEventListener<K extends keyof WebSocketEventMap>(
|
|
|
|
type: K,
|
|
|
|
listener: (this: WebSocket, ev: WebSocketEventMap[K]) => any,
|
|
|
|
options?: boolean | EventListenerOptions,
|
|
|
|
): void;
|
|
|
|
removeEventListener(
|
|
|
|
type: string,
|
|
|
|
listener: EventListenerOrEventListenerObject,
|
|
|
|
options?: boolean | EventListenerOptions,
|
|
|
|
): void;
|
|
|
|
}
|
|
|
|
|
2022-08-16 23:12:24 -04:00
|
|
|
/** @category Web Sockets */
|
2023-07-03 14:36:55 -04:00
|
|
|
declare var WebSocket: {
|
|
|
|
readonly prototype: WebSocket;
|
|
|
|
new (url: string | URL, protocols?: string | string[]): WebSocket;
|
|
|
|
readonly CLOSED: number;
|
|
|
|
readonly CLOSING: number;
|
|
|
|
readonly CONNECTING: number;
|
|
|
|
readonly OPEN: number;
|
|
|
|
};
|
|
|
|
|
|
|
|
/** @category Web Sockets */
|
|
|
|
declare type BinaryType = "arraybuffer" | "blob";
|