ClientSocket

ClientSocket

The ClientSocket class is a simple publish / subscribe wrapper built on top of the isomorphic-ws library. An instance of ClientSocket is automatically created by the soundworks.Client (see Client#socket).

Important: In most cases, you should consider using a SharedState rather than directly using the sockets.

The ClientSocket class concurrently opens two different WebSockets:

  • a socket configured with binaryType = 'blob' for JSON compatible data types (i.e. string, number, boolean, object, array and null).
  • a socket configured with binaryType= 'arraybuffer' for efficient streaming of binary data.

Both sockets re-emits all "native" ws events ('open', 'upgrade', 'close', 'error' and 'message'.

Methods

addListener(channel, callback)

Description:
  • Listen messages with JSON compatible data types on a given channel.

Source:
Parameters:
Name Type Description
channel string

Channel name.

callback function

Callback to execute when a message is received, arguments of the callback function will match the arguments sent using the ServerSocket#send method.

(async) kSocketTerminate()

Description:
  • Removes all listeners and immediately close the two sockets. Is automatically called on client.stop()

    Is also called when a disconnection is detected by the heartbeat (note that in this case, the launcher will call client.stop() but the listeners are already cleared so the event will be trigerred only once.

Source:

removeAllListeners(channel)

Description:
  • Remove all listeners of messages with JSON compatible data types.

Source:
Parameters:
Name Type Default Description
channel string null

Channel name.

removeListener(channel, callback)

Description:
  • Remove a listener from JSON compatible messages on a given channel.

Source:
Parameters:
Name Type Description
channel string

Channel name.

callback function

Callback to remove.

send(channel, …args)

Description:
  • Send messages with JSON compatible data types on a given channel.

Source:
Parameters:
Name Type Attributes Description
channel string

Channel name.

args * <repeatable>

Payload of the message. As many arguments as needed, of JSON compatible data types (i.e. string, number, boolean, object, array and null).