Трансляция данных клиенту Socket.io

Я пытаюсь создать приложение для чата, которое позволит представителям службы поддержки общаться с клиентами. Я использую Angular для интерфейса и NestJS для сервера. Это еще рано, поэтому я могу относительно легко вносить изменения, но моя идея заключалась в том, чтобы заставить чат работать:

Клиент нажимает «подключиться», и он добавляется в список клиентов на сервере. Каждому клиенту создается комната, в которой изначально он единственный в комнате. Представитель службы поддержки клиентов должен иметь возможность видеть список комнат для клиентов, чтобы он мог присоединиться к этой комнате и пообщаться с клиентом. Проблема в том, что администратор получает список комнат при присоединении, но я не знаю, как сообщить его клиенту о добавлении нового клиента. Я также хочу, чтобы список клиентов передавался только представителям службы поддержки клиентов, поэтому у меня есть флаг, передаваемый большинству действий на шлюзе чата.

я использовалclient.emit(), но проблема в том, что когда это происходит,isAdminфлаг, кажется, всегда естьfalse/null, поэтому возвращается пустой массив. Я мог бы просто передать все комнаты всем, даже клиентам, но затем не отображать этих клиентов, но мне не нравится идея отправлять это обратно по соединению, поскольку в нем будут перечислены обычные клиенты, которые еще ждут поддержки. линия чата.

Есть ли у вас какие-либо идеи относительно такого типа функциональности? У меня есть все пользователи, клиенты и представители службы поддержки, использующие один шлюз, но, может быть, мне следует подключить их к отдельным шлюзам, которые имеют общее состояние (например, список чатов пользователей)?

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

0 ответов

Другие вопросы по тегам