Как отправить сообщение из библиотеки 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.

Кажется, теперь это возможно...

https://docs.microsoft.com/en-us/azure/azure-signalr/signalr-concept-serverless-development-config#sending-messages-from-a-client-to-the-service

Отправка сообщений от клиента в службу Если у вас настроен восходящий поток для ресурса SignalR, вы можете отправлять сообщения от клиента в свои функции Azure с помощью любого клиента SignalR. Вот пример на JavaScript:

JavaScript

connection.send('method1', 'arg1', 'arg2');

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