Я начинаю создавать приложение, и я буду использовать SignalR, чтобы он работал в реальном времени. Одна из вещей, которые приложение собирается сделать, - это общение с определенными подключенными клиентами, только те, которые входят в какую-либо группу.Как создать группы SignalR во время выполнения
Как я видел в некоторых примерах, я должен заставить клиента отправить имя группы на сервер, а затем добавить идентификатор соединения пользователя в группу, а затем я могу отправлять данные только пользователям, которые в той же группе, что и подключенный клиент.
Итак, мой вопрос: представьте, например, приложение для школьного чата, где я хочу, чтобы только ученики Закона на одном классе имели доступ к группе чатов этого класса, поэтому GroupName, который я хочу передать группе соединений, не следует изменять, и я хочу, чтобы он не отображался для какого-либо пользователя, который просматривает исходный код страницы. Как мне сделать что-то, что работает так?
Я думал, что при создании страницы Razor я получаю некоторую информацию о пользователе и принадлежащей ей группе и создаю зашифрованный ключ, который будет расшифровываться на сервере, чтобы добавить пользователя в нужную группу, будет ли он работать? Но проблема в том, что зашифрованный ключ будет одинаковым для каждого подключенного пользователя, так как вход всегда один и тот же, верно? Это не было бы другим ключом для каждого соединения, поэтому некоторые могли бы получить ключ и расшифровать его ...
Так что я хотел что-то, что было бы похоже на хэширование BCrypt, которое может генерировать разные выходы для одного входа, но я хочу, чтобы можно было отменить ключ на сервере, чтобы добавить пользователя в нужную группу.
Любая идея, как я буду делать что-то подобное?
Являются ли пользователи аутентифицированными при использовании чата? В этом случае решение прост, но я прошу только подтвердить, прежде чем ответить на вопрос – xleon
Да, они прошли аутентификацию. Это похоже на то, что я просматриваю qrcode, и поэтому у меня есть доступ к «комнате», и для каждой комнаты будут какие-то администраторы, которым действительно нужно будет войти в систему, и они смогут общаться с клиентов комнаты и администраторов другой комнаты –
И должен быть вариант, когда администратор может напрямую общаться с одним из клиентов. –