Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #2334

azure-messaging-webpubsubservice-py

Ajuda seu agente a enviar e receber mensagens instantâneas pela internet usando conexões WebSocket. Útil para aplicativos que precisam de comunicação em tempo real.

O que ela faz

Esta ferramenta permite que você envie mensagens em tempo real para vários usuários ou grupos de usuários usando conexões WebSocket. É como um sistema de chat avançado que pode lidar com muitos usuários ao mesmo tempo.

Quando usar

  • ✓Criar um chat em tempo real para um site.
  • ✓Enviar notificações instantâneas para todos os usuários conectados.
  • ✓Gerenciar grupos de usuários para comunicação direcionada.

Exemplo do que pedir para a IA

“Envie uma mensagem de 'Olá a todos!' para todos os usuários conectados.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-messaging-webpubsubservice-py/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-messaging-webpubsubservice-py/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Por dentro, a ferramenta usa um serviço especial da Azure para gerenciar as conexões de todos os usuários. Quando você envia uma mensagem, ela é direcionada para o serviço da Azure, que então a distribui para as pessoas certas.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill azure-messaging-webpubsubservice-py

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-messaging-webpubsubservice-py/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

SDK do Azure Web PubSub Service para Python

Mensagens em tempo real com conexões WebSocket em escala.

Instalação

# Service SDK (server-side)
pip install azure-messaging-webpubsubservice

# Client SDK (for Python WebSocket clients)
pip install azure-messaging-webpubsubclient

Variáveis de Ambiente

AZURE_WEBPUBSUB_CONNECTION_STRING=Endpoint=https://<name>.webpubsub.azure.com;AccessKey=...
AZURE_WEBPUBSUB_HUB=my-hub

Cliente de Serviço (Lado do Servidor)

Autenticação

from azure.messaging.webpubsubservice import WebPubSubServiceClient

# Connection string
client = WebPubSubServiceClient.from_connection_string(
    connection_string=os.environ["AZURE_WEBPUBSUB_CONNECTION_STRING"],
    hub="my-hub"
)

# Entra ID
from azure.identity import DefaultAzureCredential

client = WebPubSubServiceClient(
    endpoint="https://<name>.webpubsub.azure.com",
    hub="my-hub",
    credential=DefaultAzureCredential()
)

Gerar Token de Acesso do Cliente

# Token for anonymous user
token = client.get_client_access_token()
print(f"URL: {token['url']}")

# Token with user ID
token = client.get_client_access_token(
    user_id="user123",
    roles=["webpubsub.sendToGroup", "webpubsub.joinLeaveGroup"]
)

# Token with groups
token = client.get_client_access_token(
    user_id="user123",
    groups=["group1", "group2"]
)

Enviar para Todos os Clientes

# Send text
client.send_to_all(message="Hello everyone!", content_type="text/plain")

# Send JSON
client.send_to_all(
    message={"type": "notification", "data": "Hello"},
    content_type="application/json"
)

Enviar para Usuário

client.send_to_user(
    user_id="user123",
    message="Hello user!",
    content_type="text/plain"
)

Enviar para Grupo

client.send_to_group(
    group="my-group",
    message="Hello group!",
    content_type="text/plain"
)

Enviar para Conexão

client.send_to_connection(
    connection_id="abc123",
    message="Hello connection!",
    content_type="text/plain"
)

Gerenciamento de Grupo

# Add user to group
client.add_user_to_group(group="my-group", user_id="user123")

# Remove user from group
client.remove_user_from_group(group="my-group", user_id="user123")

# Add connection to group
client.add_connection_to_group(group="my-group", connection_id="abc123")

# Remove connection from group
client.remove_connection_from_group(group="my-group", connection_id="abc123")

Gerenciamento de Conexão

# Check if connection exists
exists = client.connection_exists(connection_id="abc123")

# Check if user has connections
exists = client.user_exists(user_id="user123")

# Check if group has connections
exists = client.group_exists(group="my-group")

# Close connection
client.close_connection(connection_id="abc123", reason="Session ended")

# Close all connections for user
client.close_all_connections(user_id="user123")

Conceder/Revogar Permissões

from azure.messaging.webpubsubservice import WebPubSubServiceClient

# Grant permission
client.grant_permission(
    permission="joinLeaveGroup",
    connection_id="abc123",
    target_name="my-group"
)

# Revoke permission
client.revoke_permission(
    permission="joinLeaveGroup",
    connection_id="abc123",
    target_name="my-group"
)

# Check permission
has_permission = client.check_permission(
    permission="joinLeaveGroup",
    connection_id="abc123",
    target_name="my-group"
)

SDK do Cliente (Cliente WebSocket Python)

from azure.messaging.webpubsubclient import WebPubSubClient

client = WebPubSubClient(credential=token["url"])

# Event handlers
@client.on("connected")
def on_connected(e):
    print(f"Connected: {e.connection_id}")

@client.on("server-message")
def on_message(e):
    print(f"Message: {e.data}")

@client.on("group-message")
def on_group_message(e):
    print(f"Group {e.group}: {e.data}")

# Connect and send
client.open()
client.send_to_group("my-group", "Hello from Python!")

Cliente de Serviço Assíncrono

from azure.messaging.webpubsubservice.aio import WebPubSubServiceClient
from azure.identity.aio import DefaultAzureCredential

async def broadcast():
    credential = DefaultAzureCredential()
    client = WebPubSubServiceClient(
        endpoint="https://<name>.webpubsub.azure.com",
        hub="my-hub",
        credential=credential
    )
    
    await client.send_to_all("Hello async!", content_type="text/plain")
    

…
Perguntas frequentes

O que é uma conexão WebSocket?

É uma forma de comunicação contínua entre o seu aplicativo e um servidor, permitindo que ambos enviem informações a qualquer momento, como em um chat.

O que são 'grupos'?

São como salas de chat. Você pode adicionar usuários a grupos específicos para enviar mensagens apenas para eles, em vez de enviar para todos.

Como a segurança é tratada?

A ferramenta permite gerar tokens de acesso com permissões específicas e usar IDs de usuário para identificar e gerenciar quem pode fazer o quê, além de fechar conexões quando necessário.

Detalhes

Descrição original do autor

Azure Web PubSub Service SDK for Python. Use for real-time messaging, WebSocket connections, and pub/sub patterns.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2334
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas