Condividi tramite


Associazione di output PubSub di Azure per Funzioni di Azure

Usare l'associazione di output Web PubSub per richiamare il servizio PubSub di Azure per eseguire un'operazione. È possibile inviare un messaggio a:

  • Tutti i client connessi
  • Client connessi autenticati a un utente specifico
  • Client connessi aggiunti a un gruppo specifico
  • Una connessione client specifica

L'associazione di output consente anche di gestire client e gruppi e concedere/revocare autorizzazioni destinate a connectionId specifici con gruppo.

  • Aggiungere una connessione al gruppo
  • Aggiungere utenti al gruppo
  • Rimuovere la connessione da un gruppo
  • Rimuovere l'utente da un gruppo
  • Rimuovere l'utente da tutti i gruppi
  • Chiudere tutte le connessioni client
  • Chiudere una connessione client specifica
  • Chiudere le connessioni in un gruppo
  • Concedere l'autorizzazione di una connessione
  • Revocare l'autorizzazione di una connessione

Per informazioni sui dettagli di impostazione e configurazione, vedere la panoramica.

Esempio

[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`
        }]);
    }
});

Nota

Esempi completi per questa lingua sono in sospeso

Nota

Le estensioni Web PubSub per Java non sono ancora supportate.

WebPubSubAction

WebPubSubAction è il tipo astratto di base delle associazioni di output. I tipi derivati rappresentano il server di azione che desidera richiamare il servizio.

Nel linguaggio C# sono disponibili alcuni metodi statici in WebPubSubAction per individuare le azioni disponibili. Ad esempio, l'utente può creare l'oggetto SendToAllAction chiamando WebPubSubAction.CreateSendToAllAction().

Classe derivata Proprietà
SendToAllAction Dati, DataType, Escluso
SendToGroupAction Gruppo, Dati, DataType, Escluso
SendToUserAction UserId, Dati, DataType
SendToConnectionAction ConnectionId, Dati, DataType
AddUserToGroupAction UserId, Gruppo
RemoveUserFromGroupAction UserId, Gruppo
RemoveUserFromAllGroupsAction ID utente
AddConnectionToGroupAction ConnectionId, Gruppo
RemoveConnectionFromGroupAction ConnectionId, Gruppo
CloseAllConnectionsAction Escluso, Motivo
CloseClientConnectionAction ConnectionId, Motivo
CloseGroupConnectionsAction Gruppo, Escluso, Motivo
GrantPermissionAction ConnectionId, Autorizzazione, TargetName
RevokePermissionAction ConnectionId, Autorizzazione, TargetName

actionName è il parametro chiave per risolvere il tipo. Le azioni disponibili sono elencate di seguito.

ActionName Proprietà
sendToAll Dati, DataType, Escluso
sendToGroup Gruppo, Dati, DataType, Escluso
sendToUser UserId, Dati, DataType
sendToConnection ConnectionId, Dati, DataType
addUserToGroup UserId, Gruppo
removeUserFromGroup UserId, Gruppo
removeUserFromAllGroups ID utente
addConnectionToGroup ConnectionId, Gruppo
removeConnectionFromGroup ConnectionId, Gruppo
closeAllConnections Escluso, Motivo
closeClientConnection ConnectionId, Motivo
closeGroupConnections Gruppo, Escluso, Motivo
grantPermission ConnectionId, Autorizzazione, TargetName
revokePermission ConnectionId, Autorizzazione, TargetName

Importante

La proprietà dei dati del messaggio nelle azioni correlate al json messaggio inviato deve essere string se il tipo di dati è impostato su o text per evitare ambiguità di conversione dei dati. Usare JSON.stringify() per convertire l'oggetto json in caso di necessità. Questa operazione viene applicata a qualsiasi posizione usando la proprietà del messaggio, ad esempio UserEventResponse.Data che usa WebPubSubTrigger.

Quando il tipo di dati è impostato su binary, è consentito sfruttare l'associazione supportata naturalmente dataType come binary configurato in function.json, vedere Trigger e definizioni di associazione per informazioni dettagliate.

Impostazione

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo WebPubSub.

Proprietà di function.json Proprietà dell'attributo Descrizione
type n/d Deve essere impostato su webPubSub
direction n/d Deve essere impostato su out
name n/d Nome della variabile usato nel codice della funzione per l'oggetto di associazione di output.
hub Hub Il valore deve essere impostato sul nome dell'hub Web PubSub per attivare la funzione. È supportato impostare il valore nell'attributo come priorità più alta oppure può essere impostato nelle impostazioni dell'app come valore globale.
connection Connessione Nome dell'impostazione dell'app che contiene la stringa di connessione del servizio Web PubSub (il valore predefinito è "WebPubSubConnectionString").

Risoluzione dei problemi

Configurazione della registrazione della console

È anche possibile abilitare facilmente la registrazione della console se si vuole approfondire le richieste eseguite con il servizio.