constclient=cluster(tmi).Client({identity: {username: 'botname',password: 'oauth:abcdefxyz..'},cluster: {// how many anonymous connections to keep openconnections: 10,// whether ot not IRC join / part messages shall be// replaced by more reliable tmi.twitch.tv endpointmock_membership: true,// only applies if mock_membership is true// determines how many seconds it should wait before fetching// the same list of chattersmembership_timer_local: 20000,// only applies if mock_membership is true// determines how many seconds it should wait between fetching// different lists of chattersmembership_timer_global: 20}});
Noticeable Differences to tmi.js
Has to be initialized with login credentials. Purely anonymous connections are not possible. Authentication via @twurple/auth-tmi also works if respective API is provided instead of tmi.js
client.ping() will return reply from authenticated connection.
Additional client.pingAll() method that pings every connection. Reply from authenticated connection is the first entry.
client.readyState() will return reply from authenticated connection.
Additional client.readyStateAll() method that returns array of all ready states. Reply from authenticated connection is the first entry.
[Only when using mock_membership = true] Additional client.chatters(channel) method that returns cached list of viewers connected to chat. This is the exact reply from tmi.twitch.tv
[Only when using mock_membership = true] client.on('join', callback) provides an additional callback parameter, indicating the user group of the joined chatter (broadcaster, vips, moderators, staff, admins, global_mods, viewers)