Как отправить сообщение из библиотеки js в группу в Azure SignalR Serverless
Привет, я пытаюсь отправить сообщение группе с помощью клиентской JS- библиотеки Azure Signal R Serverless JS.
Я могу сделать это с помощью бессерверной функции Azure так же просто, как:
await signalRMessages.AddAsync(
new SignalRMessage
{
GroupName = m.GroupName,
Target = m.Target,
Arguments = new[] { m.Message }
});
* где signalRMessages = IAsyncCollector signalRMessages
Как я могу отправить то же сообщение из библиотеки js?
1 ответ
пытается отправить сообщение группе с помощью Azure Signal R Serverless
Вы можете обратиться к этому репозиторию github, в котором с образцом кода показано, как реализовать функциональность группового вещания в функциях Azure с помощью службы Azure SignalR.
Добавить пользователя в группу с помощью SignalRGroupAction
учебный класс
return signalRGroupActions.AddAsync(
new SignalRGroupAction
{
ConnectionId = decodedfConnectionId,
UserId = message.Recipient,
GroupName = message.Groupname,
Action = GroupAction.Add
});
На стороне клиента сделать запрос к конечной точке, чтобы добавить пользователя в группу.
function addGroup(sender, recipient, connectionId, groupName) {
return axios.post(`${apiBaseUrl}/api/addToGroup`, {
connectionId: connectionId,
recipient: recipient,
groupname: groupName
}, getAxiosConfig()).then(resp => {
if (resp.status == 200) {
confirm("Add Successfully")
}
});
}
Результат испытаний
Обновлено:
Q: "отправить сообщение от JS-клиента прямо из сокета".
A: Отсюда мы можем найти:
Хотя пакет SDK SignalR позволяет клиентским приложениям вызывать внутреннюю логику в концентраторе SignalR, эта функция еще не поддерживается при использовании службы SignalR с функциями Azure. Используйте HTTP-запросы для вызова Функций Azure.
Кажется, теперь это возможно...
Отправка сообщений от клиента в службу Если у вас настроен восходящий поток для ресурса SignalR, вы можете отправлять сообщения от клиента в свои функции Azure с помощью любого клиента SignalR. Вот пример на JavaScript:
JavaScript
connection.send('method1', 'arg1', 'arg2');