4.1. Conexão em Python
Com o token válido, o usuário poderá iniciar uma conexão com o WebBroker:
user = _session_store.get(session['session_id'])
if 'api_endpoint' in _config:
user.webbroker_connection = None
if user.access_token:
access_token = user.access_token
else:
user.webbroker_connection = None
print('No access token in session')
return
#Inicia conexão
try:
user.webbroker_connection = HubConnectionBuilder()\
.with_automatic_reconnect({\
"type": "raw",
"keep_alive_interval": 3600,
"reconnect_interval": 2,
"max_attempts": 15,
"prompt":"login"
})\
.with_url(_config['api_endpoint'], options={
"access_token_factory":lambda: access_token,\
"verify_ssl":False\
}).build()
user.webbroker_connection.start()
4.1. Subscrição de eventos e definição de métodos de escuta
Subscrição de eventos para todas as estratégias (obrigatório) - SubscribeEventsForAllStrategies:
Para habilitar o recebimento de atualizações em tempo real de todas as estratégias disponíveis, o cliente deve invocar o método SubscribeEventsForAllStrategies. Esta chamada é obrigatória após o estabelecimento da conexão.
Um identificador de requisição (request_Id) deve ser enviado como parâmetro. Ele deve ser uma string única (por exemplo, um UUID), utilizada para rastrear a chamada.
Exemplo em Python:
import uuid
request_id = str(uuid.uuid4())
user.webbroker_connection.send('SubscribeEventsForAllStrategies', [request_id])
Definindo os métodos de escuta (callbacks)
Após a conexão com a API WebBroker ser estabelecida com sucesso, o cliente deve registrar os métodos de escuta (callbacks) responsáveis por tratar os eventos emitidos pela API em tempo real.
Esses métodos permitem que o cliente reaja a notificações de sucesso, erros ou atualizações de estado relacionadas às estratégias ou à conexão.
Evento de erro – OnSetStrategyParamsError
Esse callback será acionado sempre que ocorrer um erro durante a criação ou envio de estratégias.
O método recebe um parâmetro error, que é uma string contendo a mensagem de erro reportada pela API WebBroker.
Exemplo em Python:
def OnSetStrategyParamsError(error):
print(f"Erro ao definir parâmetros da estratégia: {error}")
user.webbroker_connection.on("OnSetStrategyParamsError", OnSetStrategyParamsError)
Evento de atualização – OnCurrentUserStrategies
Esse callback é utilizado para receber atualizações em tempo real relacionadas às estratégias do usuário.
Sempre que uma estratégia for criada, alterada ou reportar progresso, a API WebBroker enviará uma notificação através desse evento.
O método recebe um parâmetro strategy, que é um objeto JSON contendo os dados da estratégia atualizada.
Exemplo em Python:
def OnCurrentUserStrategies(strategy):
print(f"Estratégia atualizada: {strategy}")
user.webbroker_connection.on("OnCurrentUserStrategies", OnCurrentUserStrategies)