Как сопоставить подключение сигнала с идентификатором пользователя? 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. Я не хочу аутентифицировать пользователей. У меня уже есть метод аутентификации в моем приложении. Мне просто нужно связать идентификаторы пользователей с соединениями, когда они подключаются к концентратору.