Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.