WebSocket class Null safety

Use the WebSocket interface to connect to a WebSocket, and to send and receive data on that WebSocket.

To use a WebSocket in your web app, first create a WebSocket object, passing the WebSocket URL as an argument to the constructor.

var webSocket = new WebSocket('ws://127.0.0.1:1337/ws');

To send data on the WebSocket, use the send method.

if (webSocket != null && webSocket.readyState == WebSocket.OPEN) {
  webSocket.send(data);
} else {
  print('WebSocket not connected, message $data not sent');
}

To receive data on the WebSocket, register a listener for message events.

webSocket.onMessage.listen((MessageEvent e) {
  receivedData(e.data);
});

The message event handler receives a MessageEvent object as its sole argument. You can also define open, close, and error handlers, as specified by WebSocketEvents.

For more information, see the WebSockets section of the library tour and Introducing WebSockets, an HTML5Rocks.com tutorial.

Inheritance
Annotations
  • @SupportedBrowser(SupportedBrowser.CHROME)
  • @SupportedBrowser(SupportedBrowser.FIREFOX)
  • @SupportedBrowser(SupportedBrowser.IE, '10')
  • @SupportedBrowser(SupportedBrowser.SAFARI)
  • @Unstable()
  • @Native("WebSocket")

Constructors

WebSocket(String url, [Object? protocols])
factory

Properties

binaryType String?
read / write
bufferedAmount int?
read-only
extensions String?
read-only
hashCode int
The hash code for this object. [...]
read-only, inherited
on Events
This is an ease-of-use accessor for event streams which should only be used when an explicit accessor is not available.
read-only, inherited
onClose Stream<CloseEvent>
Stream of close events handled by this WebSocket.
read-only
onError Stream<Event>
Stream of error events handled by this WebSocket.
read-only
onMessage Stream<MessageEvent>
Stream of message events handled by this WebSocket.
read-only
onOpen Stream<Event>
Stream of open events handled by this WebSocket.
read-only
protocol String?
read-only
readyState int
read-only
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
url String?
read-only

Methods

addEventListener(String type, EventListener? listener, [bool? useCapture]) → void
inherited
close([int? code, String? reason]) → void
dispatchEvent(Event event) bool
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
removeEventListener(String type, EventListener? listener, [bool? useCapture]) → void
inherited
send(dynamic data) → void
Transmit data to the server over this connection. [...]
sendBlob(Blob data) → void
Transmit data to the server over this connection. [...]
@JSName('send')
sendByteBuffer(ByteBuffer data) → void
Transmit data to the server over this connection. [...]
@JSName('send')
sendString(String data) → void
Transmit data to the server over this connection. [...]
@JSName('send')
sendTypedData(TypedData data) → void
Transmit data to the server over this connection. [...]
@JSName('send')
toString() String
A string representation of this object. [...]
inherited

Operators

operator ==(Object other) bool
The equality operator. [...]
inherited

Static Properties

supported bool
Checks if this type is supported on the current platform.
read-only

Constants

CLOSED → const int
3
closeEvent → const EventStreamProvider<CloseEvent>
Static factory designed to expose close events to event handlers that are not necessarily instances of WebSocket. [...]
const EventStreamProvider<CloseEvent>('close')
CLOSING → const int
2
CONNECTING → const int
0
errorEvent → const EventStreamProvider<Event>
Static factory designed to expose error events to event handlers that are not necessarily instances of WebSocket. [...]
const EventStreamProvider<Event>('error')
messageEvent → const EventStreamProvider<MessageEvent>
Static factory designed to expose message events to event handlers that are not necessarily instances of WebSocket. [...]
const EventStreamProvider<MessageEvent>('message')
OPEN → const int
1
openEvent → const EventStreamProvider<Event>
Static factory designed to expose open events to event handlers that are not necessarily instances of WebSocket. [...]
const EventStreamProvider<Event>('open')