Class: Client

Client

A Client provides an interface for the local User to interact with Channels. The Client constructor will synchronously return an instance of Client, and will hold any outgoing methods until it has asynchronously finished syncing with the server.

new Twilio.Chat.Client(token, options)

Parameters:
Name Type Description
token String Access token
options Client#ClientOptions Options to customize the Client
Properties:
Name Type Description
channels Map.<sid, Channel> A Map containing all Channels known locally on the Client. To ensure the Channels have loaded before getting a response, use Client#getSubscribedChannels.
connectionState 'disconnected' | 'connecting' | 'connected' | 'error' | 'denied' Service connection state
reachabilityEnabled Boolean State of reachability feature
user User Information for logged in user
version String Current version of Chat client
Fires:
  • Client#event:channelAdded
  • Client#event:channelInvited
  • Client#event:channelJoined
  • Client#event:channelLeft
  • Client#event:channelRemoved
  • Client#event:channelUpdated
  • Client#event:memberJoined
  • Client#event:memberLeft
  • Client#event:memberUpdated
  • Client#event:messageAdded
  • Client#event:messageRemoved
  • Client#event:messageUpdated
  • Client#event:typingEnded
  • Client#event:typingStarted
  • Client#event:userSubscribed
  • Client#event:userUnsubscribed
  • Client#event:userUpdated
  • Client#event:connectionStateChanged

Methods


createChannel( [options])

Create a channel on the server.
Parameters:
Name Type Argument Description
options Client#CreateChannelOptions <optional>
Options for the Channel
Returns:
Type
Promise.<Channel>

getChannelBySid(channelSid)

Get a Channel by its SID.
Parameters:
Name Type Description
channelSid String The sid of the Channel to get.
Returns:
Type
Promise.<Channel>

getChannelByUniqueName(uniqueName)

Get a Channel by its unique identifier name.
Parameters:
Name Type Description
uniqueName String The unique identifier name of the Channel to get.
Returns:
Type
Promise.<Channel>

getPublicChannelDescriptors()

Get the public channels directory content
Returns:
Type
Promise.<Paginator.<ChannelDescriptor>>

getSubscribedChannels()

Get the current list of all subscribed Channels.
Returns:
Type
Promise.<Paginator.<Channel>>

getSubscribedUsers()

Returns:
returns list of subscribed User objects {@see User}
Type
Promise.<Array.<User>>

getUser(identity)

Gets user for given identity, if it's in subscribed list - then return the user object from it, if not - then subscribes and adds user to the subscribed list
Parameters:
Name Type Description
identity String Identity of User.
Returns:
Fully initialized user
Type
Promise.<User>

getUserChannelDescriptors()

Returns paginated user's channels descriptors
Returns:
Type
Promise.<Paginator.<ChannelDescriptor>>

getUserDescriptor(identity)

Gets user descriptor for given identity
Parameters:
Name Type Description
identity String Identity of User.
Returns:
User descriptor
Type
Promise.<UserDescriptor>

handlePushNotification(notificationPayload)

Incoming push notification handler
Parameters:
Name Type Description
notificationPayload string Push notification payload

initialize()

Initializes library Library will be eventually initialized even without this method called, but client can use returned promise to track library initialization state. It's safe to call this method multiple times. It won't reinitialize library in ready state.
Returns:
Type
Promise.<Client>

setPushRegistrationId(channelType, registrationId)

Registers for push notifications
Parameters:
Name Type Description
channelType string 'gcm', 'apn' and 'fcm' are supported
registrationId string Push notification id provided by platform

shutdown()

Gracefully shutting down library instance

updateToken(token)

Update the token used by the Client and re-register with IP Messaging services.
Parameters:
Name Type Description
token String The JWT string of the new token.
Returns:
Type
Promise.<Client>

Type Definitions


ClientOptions

These options can be passed to Client constructor
Type:
  • Object
Properties:
Name Type Argument Default Description
logLevel String <optional>
'error' The level of logging to enable. Valid options (from strictest to broadest): ['silent', 'error', 'warn', 'info', 'debug', 'trace']

CreateChannelOptions

These options can be passed to Client#createChannel
Type:
  • Object
Properties:
Name Type Argument Description
attributes Object <optional>
Any custom attributes to attach to the Channel.
friendlyName String <optional>
The non-unique display name of the Channel.
isPrivate Boolean <optional>
Whether or not this Channel should be visible to uninvited Clients.
uniqueName String <optional>
The unique identity name of the Channel.