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.