Udostępnij przez


Powiązanie wyjściowe usługi Azure Web PubSub dla usługi Azure Functions

Użyj powiązania wyjściowego Web PubSub, aby wywołać usługę Azure Web PubSub , aby coś zrobić. Możesz wysłać wiadomość do:

  • Wszyscy połączeni klienci
  • Klienci połączeni uwierzytelnieni dla określonego użytkownika
  • Połączonych klientów dołączonych do określonej grupy
  • Określone połączenie klienta

Powiązanie wyjściowe umożliwia również zarządzanie klientami i grupami oraz udzielanie/odwoływanie uprawnień przeznaczonych dla określonego identyfikatora connectionId z grupą.

  • Dodawanie połączenia do grupy
  • Dodawanie użytkownika do grupy
  • Usuwanie połączenia z grupy
  • Usuwanie użytkownika z grupy
  • Usuwanie użytkownika ze wszystkich grup
  • Zamknij wszystkie połączenia klienckie
  • Zamykanie określonego połączenia klienta
  • Zamykanie połączeń w grupie
  • Udzielanie uprawnień do połączenia
  • Odwoływanie uprawnień do połączenia

Aby uzyskać informacje na temat konfiguracji i konfiguracji, zobacz omówienie.

Przykład

[Function("WebPubSubOutputBinding")]
[WebPubSubOutput(Hub = "<hub>", Connection = "<web_pubsub_connection_name>")]
public static WebPubSubAction Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req)
{
    return new SendToAllAction
    {
        Data = BinaryData.FromString("Hello Web PubSub!"),
        DataType = WebPubSubDataType.Text
    };
}

const { app, output } = require('@azure/functions');
const wpsMsg = output.generic({
    type: 'webPubSub',
    name: 'actions',
    hub: '<hub>',
});

app.http('message', {
    methods: ['GET', 'POST'],
    authLevel: 'anonymous',
    extraOutputs: [wpsMsg],
    handler: async (request, context) => {
        context.extraOutputs.set(wpsMsg, [{
            "actionName": "sendToAll",
            "data": `Hello world`,
            "dataType": `text`
        }]);
    }
});

Uwaga

Kompletne przykłady dla tego języka są oczekujące

Uwaga

Rozszerzenia Web PubSub dla języka Java nie są jeszcze obsługiwane.

Działanie WebPubSub

WebPubSubAction jest podstawowym abstrakcyjnym typem powiązań wyjściowych. Typy pochodne reprezentują serwer akcji, który chce wywołać usługę.

W języku C# udostępniamy kilka metod statycznych, WebPubSubAction które ułatwiają odnajdywanie dostępnych akcji. Na przykład użytkownik może utworzyć obiekt SendToAllAction za pomocą wywołania WebPubSubAction.CreateSendToAllAction().

Klasa pochodna Właściwości
SendToAllAction Dane, Typ danych, Wykluczone
SendToGroupAction Grupa, Dane, Typ danych, Wykluczone
SendToUserAction Identyfikator użytkownika, Dane, Typ danych
SendToConnectionAction IdPołączenia, Dane, TypDanych
AddUserToGroupAction Identyfikator użytkownika, Grupa
RemoveUserFromGroupAction Identyfikator użytkownika, Grupa
RemoveUserFromAllGroupsAction Identyfikator użytkownika
AddConnectionToGroupAction ConnectionId, Grupa
RemoveConnectionFromGroupAction ConnectionId, Grupa
CloseAllConnectionsAction Wykluczone, przyczyna
CloseClientConnectionAction IdentyfikatorPołączenia, Przyczyna
CloseGroupConnectionsAction Grupa, Wykluczone, Przyczyna
GrantPermissionAction IdPołączenia, Uprawnienie, NazwaDocelowa
RevokePermissionAction IdPołączenia, Uprawnienie, NazwaDocelowa

actionName to parametr klucza, który ma rozpoznać typ. Dostępne akcje są wymienione w następujący sposób.

Nazwa Akcji Właściwości
sendToAll Dane, Typ danych, Wykluczone
sendToGroup Grupa, Dane, Typ danych, Wykluczone
sendToUser Identyfikator użytkownika, Dane, Typ danych
sendToConnection IdPołączenia, Dane, TypDanych
addUserToGroup Identyfikator użytkownika, Grupa
removeUserFromGroup Identyfikator użytkownika, Grupa
removeUserFromAllGroups Identyfikator użytkownika
addConnectionToGroup ConnectionId, Grupa
removeConnectionFromGroup ConnectionId, Grupa
closeAllConnections Wykluczone, przyczyna
closeClientConnection IdentyfikatorPołączenia, Przyczyna
closeGroupConnections Grupa, Wykluczone, Przyczyna
grantPermission IdPołączenia, Uprawnienie, NazwaDocelowa
revokePermission IdPołączenia, Uprawnienie, NazwaDocelowa

Ważne

Właściwość danych komunikatów w akcjach związanych z wysłanymi komunikatami musi być string ustawiona na json wartość lub text aby uniknąć niejednoznaczności konwersji danych. Użyj polecenia JSON.stringify() , aby przekonwertować potrzebny obiekt JSON. Jest to stosowane do dowolnego miejsca przy użyciu właściwości komunikatu UserEventResponse.Data , na przykład pracy z WebPubSubTrigger.

Gdy typ danych jest ustawiony na binarywartość , może korzystać z powiązania, które jest naturalnie obsługiwane dataType zgodnie binary z konfiguracją w programie function.json, zobacz Temat Wyzwalacz i definicje powiązań, aby uzyskać szczegółowe informacje.

Konfigurowanie

W poniższej tabeli opisano właściwości konfiguracji powiązania ustawione w pliku function.json i atrybut.WebPubSub

właściwość function.json Właściwość atrybutu opis
typ nie dotyczy Musi być ustawiona na webPubSub
kierunek nie dotyczy Musi być ustawiona na out
nazwa nie dotyczy Nazwa zmiennej używana w kodzie funkcji dla obiektu powiązania wyjściowego.
koncentrator Piasta Wartość musi być ustawiona na nazwę centrum Web PubSub, aby funkcja została wyzwolona. Obsługujemy ustawianie wartości w atrybucie jako wyższy priorytet lub można ją ustawić w ustawieniach aplikacji jako wartość globalną.
połączenie Połączenie Nazwa ustawienia aplikacji zawierającego usługę Web PubSub Service parametry połączenia (domyślnie to "WebPubSubConnectionString").

Ważne

Aby zapewnić optymalne zabezpieczenia, aplikacja funkcji powinna używać tożsamości zarządzanych podczas nawiązywania połączenia z usługą Web PubSub zamiast używać parametrów połączenia, które zawierają wspólny klucz tajny. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądania tożsamości zarządzanej przy użyciu identyfikatora Entra firmy Microsoft.

Rozwiązywanie problemów

Konfigurowanie rejestrowania konsoli

Możesz również łatwo włączyć rejestrowanie konsoli, jeśli chcesz dokładniej zapoznać się z żądaniami, które podejmujesz względem usługi.