The Connection that owns this transport.
The wrapper element name whose children Connection unwraps before
dispatch. BOSH overloads it as a boolean toggle, hence the union.
Private helper function that makes sure all pending requests are aborted.
Private function to close the WebSocket.
Closes the socket if it is still open and deletes it
Private function called by Connection.connect
Creates a WebSocket for a connection and assigns Callbacks to it. Does nothing if there already is a WebSocket.
Private function called by Connection._connect_cb checks for stream:error
The received stanza.
Private function called by Connection.disconnect Disconnects and sends a last stanza if one is given
Optionalpres: Element | Builder
This stanza will be sent before disconnecting.
Private function to disconnect. Just closes the Socket for WebSockets
Private function to check if the message queue is empty.
True, because WebSocket messages are send immediately after queueing.
Called on stream start/restart when no stream:features has been received.
Optionalcallback: (this: default) => voidPrivate function to handle websockets closing.
Optionale: CloseEventPrivate timeout handler for handling non-graceful disconnection.
This does nothing for WebSockets
Private function to handle websockets errors.
The websocket error.
Private function called by Connection._onIdle sends all queued stanzas
Private function that handles the first connection messages.
On receiving an opening stream tag this callback replaces itself with the real message handler. On receiving a stream error the connection is terminated.
Private function to handle websockets messages.
This function parses each of the messages as if they are full documents. [TODO : We may actually want to use a SAX Push parser].
Since all XMPP traffic starts with <stream:stream version='1.0' xml:lang='en' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='3697395463' from='SERVER'>
The first stanza will always fail to be parsed.
Additionally, the seconds stanza will always be stream:features with the stream NS defined in the previous stanza, so we need to 'force' the inclusion of the NS in this stanza.
The websocket message event
Called by _onInitialMessage in order to replace itself with the general message handler. This method is overridden by WorkerWebsocket, which manages a websocket connection via a service worker and doesn't have direct access to the socket.
Reset the connection.
This function is called by the reset function of the Strophe Connection. Is not needed by WebSockets.
Private part of the Connection.send function for WebSocket Just flushes the messages that are in the queue
Send an xmpp:restart stanza.
PrivateFunction _streamWrap
Private helper function to wrap a stanza in a
Helper class that handles WebSocket Connections
The WebSocket class is used internally by Connection to encapsulate WebSocket sessions. It is not meant to be used from user's code.