Living Standard — Last Updated 16 January 2024
The WebSocket interface used
  to be defined here. It is now defined in WebSockets. [WEBSOCKETS]
MessageEvent interfaceSupport in all current engines.
Messages in server-sent events, cross-document messaging,
  channel messaging, broadcast channels, and WebSockets use
  the MessageEvent interface for their message
  events: [WEBSOCKETS]
[Exposed =(Window ,Worker ,AudioWorklet )]
interface  MessageEvent  : Event  {
  constructor (DOMString  type , optional  MessageEventInit  eventInitDict  = {});
  readonly  attribute  any  data ;
  readonly  attribute  USVString  origin ;
  readonly  attribute  DOMString  lastEventId ;
  readonly  attribute  MessageEventSource ? source ;
  readonly  attribute  FrozenArray <MessagePort > ports ;
  undefined  initMessageEvent (DOMString  type , optional  boolean  bubbles  = false , optional  boolean  cancelable  = false , optional  any  data  = null , optional  USVString  origin  = "", optional  DOMString  lastEventId  = "", optional  MessageEventSource ? source  = null , optional  sequence <MessagePort > ports  = []);
};
dictionary  MessageEventInit  : EventInit  {
  any  data  = null ;
  USVString  origin  = "";
  DOMString  lastEventId  = "";
  MessageEventSource ? source  = null ;
  sequence <MessagePort > ports  = [];
};
typedef  (WindowProxy  or  MessagePort  or  ServiceWorker ) MessageEventSource ;event.dataSupport in all current engines.
Returns the data of the message.
event.originSupport in all current engines.
Returns the origin of the message, for server-sent events and cross-document messaging.
event.lastEventIdSupport in all current engines.
Returns the last event ID string, for server-sent events.
event.sourceSupport in all current engines.
Returns the WindowProxy of the source window, for cross-document
    messaging, and the MessagePort being attached, in the connect event fired at
    SharedWorkerGlobalScope objects.
event.portsSupport in all current engines.
Returns the MessagePort array sent with the message, for cross-document
    messaging and channel messaging.
The data
  attribute must return the value it was initialized to. It represents the message being sent.
The origin attribute must return the value it was
  initialized to. It represents, in server-sent events and cross-document
  messaging, the origin of the document that
  sent the message (typically the scheme, hostname, and port of the document, but not its path or
  fragment).
The lastEventId attribute must return the value it
  was initialized to. It represents, in server-sent events, the last event ID string of the event source.
The source attribute must return the value it was
  initialized to. It represents, in cross-document messaging, the
  WindowProxy of the browsing context of the Window object
  from which the message came; and in the connect events used by shared workers, the newly connecting
  MessagePort.
The ports
  attribute must return the value it was initialized to. It represents, in cross-document
  messaging and channel messaging, the MessagePort array being
  sent.
The initMessageEvent(type, bubbles,
  cancelable, data, origin, lastEventId,
  source, ports) method must initialize the event in a manner
  analogous to the similarly-named initEvent() method.
  [DOM]
Various APIs (e.g., WebSocket, EventSource) use the
  MessageEvent interface for their message event
  without using the MessagePort API.