Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik de Azure Web PubSub-trigger om clientevenementen van de Azure Web PubSub-service te verwerken.
Het patroon van het triggereindpunt zou als volgt moeten worden ingesteld in de web pubsub-service (portal: instellingen -> gebeurtenishandler -> URL-sjabloon). In het eindpuntpatroon is het queryonderdeel code=<API_KEY> VEREIST wanneer u Azure Function App gebruikt om beveiligingsredenen. De sleutel vindt u in Azure Portal. Zoek uw functie-app-resource en navigeer naar Functions ->App-sleutels -> ->webpubsub_extension nadat u de functie-app in Azure hebt geïmplementeerd. Deze sleutel is echter niet nodig wanneer u met lokale functies werkt.
<Function_App_Url>/runtime/webhooks/webpubsub?code=<API_KEY>
Opmerking
In het volgende voorbeeld ziet u hoe u gebruikersgebeurtenissen van clients kunt verwerken.
[Function("Broadcast")]
public static void Run(
[WebPubSubTrigger("<hub>", WebPubSubEventType.User, "message")] UserEventRequest request, ILogger log)
{
log.LogInformation($"Request from: {request.ConnectionContext.UserId}");
log.LogInformation($"Request message data: {request.Data}");
log.LogInformation($"Request message dataType: {request.DataType}");
}
WebPubSubTrigger binding ondersteunt ook retourwaarde in synchronisatiescenario's, bijvoorbeeld systeem Connect - en gebruikersbeurtenis, wanneer de server de clientaanvraag kan controleren en weigeren, of berichten rechtstreeks naar de beller kan verzenden.
Connectgebeurtenis respecteert en ConnectEventResponse, en gebruikersgebeurtenis EventErrorResponse respecteert UserEventResponse en EventErrorResponseresttypen die niet overeenkomen met het huidige scenario, worden genegeerd.
[Function("Broadcast")]
public static UserEventResponse Run(
[WebPubSubTrigger("<hub>", WebPubSubEventType.User, "message")] UserEventRequest request)
{
return new UserEventResponse("[SYSTEM ACK] Received.");
}
const { app, trigger } = require('@azure/functions');
const wpsTrigger = trigger.generic({
type: 'webPubSubTrigger',
name: 'request',
hub: '<hub>',
eventName: 'message',
eventType: 'user'
});
app.generic('message', {
trigger: wpsTrigger,
handler: async (request, context) => {
context.log('Request from: ', request.connectionContext.userId);
context.log('Request message data: ', request.data);
context.log('Request message dataType: ', request.dataType);
}
});
WebPubSubTrigger binding biedt ook ondersteuning voor retourwaarde in synchronisatiescenario's, bijvoorbeeld systeem Connect - en gebruikersevenementen, wanneer de server de clientaanvraag kan controleren en weigeren, of het bericht rechtstreeks naar de aanvraagclient kan verzenden. In javaScript wordt zwak getypte taal gedeserialiseerd met betrekking tot de objectsleutels. En EventErrorResponse heeft de hoogste prioriteit vergeleken met restobjecten, dat als code deze zich in de return bevindt, het wordt geparseerd naar EventErrorResponse.
Notitie
Volledige voorbeelden voor deze taal zijn in behandeling.
Notitie
De Web PubSub-extensies voor Java worden nog niet ondersteund.
Configuratie
In de volgende tabel worden de bindingsconfiguratie-eigenschappen uitgelegd die u in het function.json-bestand hebt ingesteld.
| function.json-eigenschap | Kenmerkeigenschap | Beschrijving |
|---|---|---|
| soort | n.v.t. | Vereist - moet worden ingesteld op webPubSubTrigger. |
| richting | n.v.t. | Vereist - moet worden ingesteld op in. |
| naam | n.v.t. | Vereist: de variabelenaam die wordt gebruikt in functiecode voor de parameter die de gebeurtenisgegevens ontvangt. |
| naaf | Knooppunt | Vereist: de waarde moet worden ingesteld op de naam van de Web PubSub-hub om de functie te activeren. We ondersteunen het instellen van de waarde in kenmerk als hogere prioriteit, of deze kan worden ingesteld in app-instellingen als een globale waarde. |
| gebeurtenistype | WebPubSubEventType | Vereist: de waarde moet worden ingesteld als het gebeurtenistype van berichten om de functie te activeren. De waarde moet een user of system. |
| eventName | Naam van het evenement | Vereist: de waarde moet worden ingesteld als de gebeurtenis van berichten om de functie te activeren.
Voor system gebeurtenistype moet de naam van de gebeurtenis zich in connect, connected, . disconnected
Voor door de gebruiker gedefinieerde subprotocollen is messagede gebeurtenisnaam .
Voor door het systeem ondersteunde subprotocol json.webpubsub.azure.v1.is de gebeurtenisnaam door de gebruiker gedefinieerde gebeurtenisnaam. |
| clientProtocols | ClientProtocols | Optioneel: geeft aan welk clientprotocol de Web PubSub-triggerfuncties kan activeren.
De volgende hoofdlettergevoelige waarden zijn geldig: allaccepteert alle clientprotocollen. Standaardwaarde.
webPubSub: Accepteert alleen Web PubSub-protocollen.
mqtt: Accepteert alleen MQTT-protocollen. |
| verbinding | Verbinding | Optioneel: de naam van een app-instellingen of verzameling die de upstream Azure Web PubSub-service aangeeft. De waarde wordt gebruikt voor handtekeningvalidatie. En de waarde wordt standaard automatisch opgelost met app-instellingen WebPubSubConnectionString . En null betekent dat de validatie niet nodig is en altijd slaagt. |
Belangrijk
Voor optimale beveiliging moet uw functie-app beheerde identiteiten gebruiken bij het maken van verbinding met de Web PubSub-service in plaats van een verbindingsreeks, die een gedeelde geheime sleutel bevat. Zie Een beheerde identiteitsaanvraag autoriseren met behulp van Microsoft Entra-id voor meer informatie.
Gebruik
In C# WebPubSubEventRequest is het type herkende bindingsparameter. Rest-parameters zijn afhankelijk van de parameternaam. Controleer de volgende tabel op beschikbare parameters en typen.
In zwak getypte taal, zoals JavaScript, name wordt gebruikt function.json om het triggerobject te binden met betrekking tot de volgende toewijzingstabel. En respecteer dataType om function.json het bericht dienovereenkomstig te converteren wanneer name deze is ingesteld data als het bindingsobject voor triggerinvoer. Alle parameters kunnen worden gelezen uit context.bindingData.<BindingName> en worden JObject geconverteerd.
| Bindingsnaam | Bindingstype | Beschrijving | Eigenschappen |
|---|---|---|---|
| aanvraag | WebPubSubEventRequest |
Beschrijft de upstream-aanvraag | De eigenschap verschilt per gebeurtenistype, waaronder afgeleide klassen ConnectEventRequest, , MqttConnectEventRequest, ConnectedEventRequest, MqttConnectedEventRequest, UserEventRequest, DisconnectedEventRequesten MqttDisconnectedEventRequest. |
| verbindingscontext | WebPubSubConnectionContext |
Algemene aanvraaggegevens | EventType, EventName, Hub, ConnectionId, UserId, Headers, Origin, Signature, States |
| gegevens |
BinaryData,,string,Streambyte[] |
Berichtgegevens aanvragen van client in gebruikers message gebeurtenis |
- |
| Datatype | WebPubSubDataType |
Request message dataType, die ondersteuning biedt binaryvoor , textjson |
- |
| aanspraken | IDictionary<string, string[]> |
Gebruikersclaims in systeemaanvraag connect |
- |
| zoekopdracht | IDictionary<string, string[]> |
Gebruikersquery in systeemaanvraag connect |
- |
| subprotocollen | IList<string> |
Beschikbare subprotocollen in systeemaanvraag connect |
- |
| clientcertificaten | IList<ClientCertificate> |
Een lijst met certificaatvingerafdrukken van clients in systeemaanvraag connect |
- |
| reden | string |
Reden in systeemaanvraag disconnected |
- |
Belangrijk
In C# moeten meerdere typen ondersteunde parameter
Antwoord retourneren
WebPubSubTrigger respecteert het geretourneerde antwoord van de klant voor synchrone gebeurtenissen van connect en gebruikersgebeurtenissen. Alleen overeenkomende antwoorden worden teruggestuurd naar de service, anders wordt het genegeerd.
WebPubSubTrigger Bovendien ondersteunt return-object gebruikers voor SetState() en ClearStates() het beheren van de metagegevens voor de verbinding. En de extensie voegt de resultaten van de retourwaarde samen met de oorspronkelijke waarden uit de aanvraag WebPubSubConnectionContext.States. De waarde in de bestaande sleutel wordt overschreven en de waarde in de nieuwe sleutel wordt toegevoegd.
| Retourtype | Beschrijving | Eigenschappen |
|---|---|---|
ConnectEventResponse |
Antwoord voor connect gebeurtenis |
Groepen, rollen, userid, subprotocol |
UserEventResponse |
Antwoord voor gebruikersevenement | DataType, Gegevens |
EventErrorResponse |
Foutreactie voor de synchronisatie-gebeurtenis | Code, Foutmelding |
*WebPubSubEventResponse |
Basisreactietype van de ondersteunde antwoorden die worden gebruikt voor onzekere retourcases | - |