"Если вдруг открылся люк, не пугайся, это глюк!" (с) Если что-то работает не так, вы нашли ошибку или опечатку в программе — вам в этот раздел
Аватара пользователя
Staarplaat
Добрый день.

Web-поддержка на сайт
- клиент не соединияется, если в группе нет оператора с которым соединялся ранее

Чат настроен на соединение по группе операторов Web-поддержки без выбора конкретного пользователя

    Сегодня в группе 3 оператора.
    Клиент1 говорил в чате с оператор1
    Завтра оператор1 увольняют и убирают его из списка группы Web-поддержки
    После чего клиент1 больше вообще не может соединиться ни с кем:
    "MyChat Server: ошибка #115
    Потеряно соединение с сервером"

    В консоли :
    {…}
    ErrNum: 248
    Params: Array [ "141" ]
    <prototype>: Object { … }
    ...
    где "141" - как раз ID удаленного из группы поддержки пользователя.

Очевидно, что должен соединяться любым доступным в группе web-поддержки, если прошлого оператора в группе нет. Иначе клиент потерян. Глюк или фича? Что можно сделать, чтобы соединялся с любым другим доступным?
Аватара пользователя
Андрей Раков
Добрый день.

Такое поведение мы не предусмотрели, сейчас делаем доработку.

Немного позже выложу обновление.
Аватара пользователя
Андрей Раков
Обновите содержимое:
C:\Program Files (x86)\MyChat Server\node\
Вложения
(17.2 МБ) Скачиваний: 531
Аватара пользователя
Staarplaat
Огромное спасибо.

Теперь соединение происходит.

Но, с точки зрения клиента, происходящее на экране выглядит пугающее. Особенно если клиент девушка:
1. Прежде, чем клиент соединится с другим активным оператором, у него в чате сначала выскакивает красная ошибка "MyChat Server: ошибка #248" , что "вы не можете открыть приват с пользователем UIN 0, потому что он не включен в список операторов WEB-поддержки на сайт".
Девочка уже испугалась. Хорошо, если нажмет кнопку "Закрыть", а не просто уйдет с сайта.
2. Но, даже если догадалась нажать кнопку, у нее возникает новая ошибка "Потеряно соединение с сервером". Все. Девочка в панике закрывает чат.
И только самые стойкие, с третьей, получается, попытки, дойдут до соединения с другим активным оператором.
Зачем так сложно? Зачем пугать клиентов?
Аватара пользователя
Андрей Раков
Добрый день.

Пугать клиентов мы не хотим :), просто мне нужно понять, какие условия нужно сделать, чтобы повторить такое поведение программы.

Сейчас попробую разобраться, но дополнительные комментарии от вас приветствуются.
Аватара пользователя
Staarplaat
Да.

1. Назначаю в группу операторов Web поддержки 3 человека: поддержка1, поддержка2, поддержка3.

2. Открываю новый чат в режиме инкогнито. Чтобы все по чистому - зарегистрировался новый человек, ему назначился новый оператор (сам чат настроен на группу и без выбора оператора - автоматический выбор оператора).

3. Допустим этому, только что зарегистрированному, гостю "Вася"(id 150) назначился оператор "поддержка1"(id140)

4. Гость "Вася" закрывает окно чата.

5. Админ удаляет оператора "поддержка1"(id140) из группы (не важно - в отпуск ушел)

6. Гость снова открывает чат. Чат помнит, что "Вася" ранее соединялся с "поддержка1"(id140) но в группе Web поддержки такого уже нет. Ему бы молча получить другого доступного оператора, но Вася получает вышеописанные ошибки при входе.
Последний раз редактировалось Staarplaat Пт мар 01, 2019 2:18 pm, всего редактировалось 1 раз.
Аватара пользователя
Staarplaat
На всякий случай написал заново. Там были ошибки не по теме

1. Назначаю в группу операторов Web поддержки 3 человека: поддержка1, поддержка2, поддержка3.

2. Открываю новый чат в режиме инкогнито. Чтобы все по чистому - зарегистрировался новый человек, ему назначился новый оператор (сам чат настроен на группу и без выбора оператора - автоматический выбор оператора).

3. Допустим этому, только что зарегистрированному, гостю "Вася"(id 150) назначился оператор "поддержка1"(id140)

4. Гость "Вася" закрывает окно чата.

5. Админ удаляет оператора "поддержка1"(id140) из группы (не важно - в отпуск ушел)

6. Гость снова открывает чат. Чат помнит, что "Вася" ранее соединялся с "поддержка1"(id140) но в группе Web поддержки такого уже нет. Ему бы молча получить другого доступного оператора, но Вася получает вышеописанные ошибки при входе.
Аватара пользователя
Андрей Раков
Вроде поправил, во всяком случае у меня сейчас не повторяется данная проблема
Вложения
(17.2 МБ) Скачиваний: 544
Аватара пользователя
Staarplaat
К сожалению проблема осталась.

До обновления Web-чат:

1. Брал запомненное имя Web-guest

2. И пытался соединиться с запомненным оператором, которого уже нет в группе поддержки и выдавал ошибку, что ID (этого оператора, например 140) не включен в список операторов и далее.

-------------------------

После обновления Web-чат:

1. Заново просит ввести имя пользователя - просит новую регистрацию. (видимо видит, что прошлого оператора нет в списке, забывает старого Web-guest и делает нового)
Технически это лишь неудобство, но конкретно для нас это заметная проблема.

2. После чего выдает 2 ошибки:
    ошибку "#248" - "вы не можете открыть приват с пользователем UIN 0, потому что он не включен в список операторов WEB-поддержки на сайт" (именно UIN 0, то есть робота, которого и не было никогда в поодержке).
    и ошибку "#223" - "Потеряно соединение с сервером"
То есть все то же самое, как до обновления, но с разницей, что до обновления чат иногда ругался на отсутствие реального пользователя с UIN >0, теперь ругается всегда на робота-пользователя UIN 0
Вложения
Untitled-1.png
Untitled-1.png (40.43 КБ) Просмотров: 49197
Аватара пользователя
Андрей Раков
Добрый день.

Что у вас написано в адресной строке браузера?
Аватара пользователя
Андрей Раков
Также покажите содержимое закладки "Хранилище" - "Локальное хранилище" (в инструментах разработчика браузера).
Аватара пользователя
Staarplaat
Кажется понял в чем дело.
Автопереход на доступного оператора работает без всплывающей ошибки.
Вроде бы ошибка UIN 0 возникает только если открываешь чат под режимом инкогнито. Именно так я по началу тестировал.

Вроде работает. Тайм аут на 2 дня для тестов. По результатам отпишусь.
Пока вопрос снят.
Спасибо.
Аватара пользователя
Staarplaat
Все. Понял в чем дело.
Ошибка возникает на совершенно новом пользователе. Никогда не заходившим в чат.

    Если пользователь заходил ранее и был сединен с оператором, которой в текущий момент нет в группе, то пользователя автоматом соединит с другим доступным. Ошибок больше нет. Проблема ушла.

    Если пользователь заходил ранее, но был удален, в следующий раз при входе чат его спросит ввести имя заново. Ошибок больше нет. Проблема ушла. (это была проблема из соседней темы)

    Проблема возникает, если пользователь зашел первый раз. Чат спросит имя, вводим имя, жмем далее и получаем те самые ошибки "#248" (UIN 0) и далее "#223".
Данные с localstorage:
Вложения
Untitled-2.png
Untitled-2.png (34.26 КБ) Просмотров: 49191
Untitled-3.png
Untitled-3.png (39.91 КБ) Просмотров: 49191
Аватара пользователя
Staarplaat
Да. Конечно. За этим я слежу
Аватара пользователя
Андрей Раков
Наконец-то, нашел невероятно тупую ошибку.

Сейчас должно работать, как следует:
(17.2 МБ) Скачиваний: 552