Как проверить возможность изменения доступности участников канала в программируемом чате Twilio JS SDK - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь добавить функцию индикатора достижимости в свой существующий чат twilio. Это чат один на один. Я не хочу показывать, есть ли какой-либо участник в сети, но эта функция необходима для отправки уведомлений по почте. Уведомление будет отправлено только оффлайн-участникам.

Я следовал за их официальным делом c: https://www.twilio.com/docs/chat/reachability-indicator. Внизу страницы есть небольшой фрагмент кода, но это не сработало. updated Событие не запускается ни на одном конце участника. Я установил для ReachabilityEnabled значение ИСТИНА в своем сервисе чата.

Я нашел способ добиться этого с помощью setInterval(), но я считаю, что использование обработчика событий является правильным способом. Можете ли вы показать мне, как добиться этого с помощью обработчика событий, или я где-то ошибаюсь?

Я использую Twilio PHP SDK v6.3.0 & JS SDK v3.3.5

Код ниже будет выполнено, когда я нажму на канал:

// Initialise the Chat client
// Get the current channel by it's unique name

let currentUser = chatClient.user;

// check for reachability change
setInterval(() => {
                currentChannel.getMembers().then(members => {
                    members.forEach(member => {
                        member.getUser().then(user => {
                            if (currentUser.state.identity !== user.state.identity) {
                                if (user.state.online === true) {
                                    $('.contact').attr('is-online', 1);
                                } else if (user.state.online === false) {
                                    $('.contact').attr('is-online', 0);
                                }
                            }
                        }).catch(error => {
                            console.error(error);
                        });
                    });                    
                }).catch(error => {
                    console.error(error);
                });
            }, 500);
...