View in chat -
main
1
←
41
→
782
TX
2021-05-12 18:48:28
(0)
мы не поняли тоби
TX
2021-05-12 18:52:47
(0)
бывает
TX
2021-05-12 20:25:14
(0)
Аааа. Ган мосфеты. Я получил только последнюю месагу про "пидары рулят" и затруднился понять какие пидоры.
TX
2021-05-12 21:17:40
(0)
GAN MOSFET гениальное изобретение, но Sic Mosfet тож не спит
TX
2021-05-13 06:55:54
(0)
Алгоритм работы нашего чатика
1. в js запихан список из нескольких чатиков с их названиями
это то, что вы видите слева как список контактов
2. Мы коннектимся к бакенду и когда он hello то мы отправляем подписку на все эти чатики
3. бакенд регистрирует для нашего коннекта подписку сразу на все заявленные клиентом чатики
и шлет клиенту подтверждение подписки на каждый чатек, снабжая каждое подтверждение
длиной соответств. чатика
4. Так клиент узнает про все эти чатики их текущую длину в пишет ее напротив каждого чатика
5. Далее клиент запрашивает последнюю месагу каждого чатека. Например если чаьик длиной 900
то значит спросит для него месагу 899 (индекс с нуля)
посоедняя месага нуужна для рисования ее под названием чатека, мол че там сказали recently
6. Далее клиент выбирает какойто чатик текущим чатиком и запрашивает для него
последних штук 30-40 месаг
Буфер месаг последнего чатика показан юзеру в основном окне
7. При подписке на чатик, сервер выдает для этого чатика некое число, по которому
данный юзер далее производит общение именно к этому чатику
это как дескриптор файла у процесса, если рассматривать юзера-коннект как процесс
это число нужно, чтобы всегда передавать не имена чатиков, а эти числа. Такое мультиплексирование.
Число 2-байтное, поэтому при общении с сервером мы всегда экономим на имени чатика
8. Врядли клиент подпишется сразу на на 0xffff чатиков/каналов/тредов, поэтому 2 байт хватит
Естественно эти дескрипторы локальны и у всех начитаются с 0 и виртуальны
1
←
41
→
782