connectChat() { this.isConnecting = true; const { user: { userExtended } } = this.props; const chatManager = new Chatkit.ChatManager({ instanceLocator: CHATKIT_INSTANCE_LOCATOR, userId: userExtended.id, tokenProvider: this.tokenProvider }); chatManager.connect() .then(currentUser => { this.isConnecting = false; this.props.setUser(currentUser); return Promise.all( currentUser.rooms.map(room => currentUser.subscribeToRoom({ roomId: room.id, hooks: { onNewMessage: this.onReceive } })) ) }).then(rooms => {this.isConnecting = false; console.log('all connected') }) .catch(error => { this.isConnecting = false; console.log('chatroom connect error', error) }) }
export const setChatkitUser = (id) => (dispatch) => { const tokenProvider = new Chatkit.TokenProvider({ url: CHATKIT_TOKEN_PROVIDER_ENDPOINT }); const chatManager = new Chatkit.ChatManager({ instanceLocator: CHATKIT_INSTANCE_LOCATOR, userId: id.toString(), tokenProvider }); chatManager.connect().then(currentUser => { dispatch({ type: SET_CHATKIT_USER, payload: currentUser }); }).catch.log(e => console.log(e)); };