Как сопоставить подключение сигнала с идентификатором пользователя? JavaScript без сервера

Я использую бессерверное приложение функции JavaScript с функцией согласования по умолчанию и другой функцией httpTrigger, называемой sendMessage.

Я пытаюсь заставить sendMessage отправлять сообщения signalR конкретному клиенту с идентификатором пользователя (трансляция уже работает. Я хочу отправить одному пользователю с идентификатором). Как я могу сопоставить соединения signalR с идентификатором пользователя в клиентском приложении, чтобы иметь возможность отправлять ему сообщения позже?

Клиент подключается к хабу в браузере так:

      const connection = new signalR.HubConnectionBuilder()
             .withUrl(`${apiBaseUrl}/api`)
             .build();

connection.on('newMessage', (msg)=>{
  console.log(msg)
  }
);
connection.start()
  .catch(console.error);
  /////////////////////////////////////////////////////////////////
  // do something here to like connection with userId??

Что мне нужно сделать с моей лазурной функцией, так это отправить сообщение конкретному пользователю с идентификатором пользователя. Так:

      module.exports = async function (context, req) {
    context.bindings.signalRMessages  = [{
        // message will only be sent to this user ID
        "userId": "userId1",
        "target": "newMessage",
        "arguments": ["some message to userId1"]
    }];
};

Как я могу сопоставить идентификаторы пользователей с подключениями, когда пользователь подключается к концентратору? В документации есть пример этого, но они используют аутентификацию служб приложений Azure. Я не хочу аутентифицировать пользователей. У меня уже есть метод аутентификации в моем приложении. Мне просто нужно связать идентификаторы пользователей с соединениями, когда они подключаются к концентратору.

0 ответов

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