MessageBus - Como configurar o Messagebus usando Dart-Flutter

Olá a todos,

Estou criando um aplicativo móvel que usa o Discourse para OBTER e POSTAR dados. No momento, estou fazendo uma solicitação a cada 30 segundos para ver se há novas postagens em um tópico. Isso parece que pode potencialmente prejudicar nosso fórum ao acidentalmente sobrecarregá-lo.

Tenho procurado uma boa solução usando WebSockets em Flutter, mas ainda sem sucesso. Para o Discourse, encontrei o MessageBus, cuja documentação é confusa.

No entanto, já temos o MessageBus configurado em nosso fórum, como visto nesta solicitação de polling:
image

Então, minha pergunta é se alguém tem alguma ideia de como resolver este problema e tem alguma experiência usando MessageBus ou Flutter WebSockets.

1 curtida

MessageBus é uma opção - você pode encontrar bibliotecas cliente para Ruby e JS aqui: GitHub - discourse/message_bus: A reliable and robust messaging bus for Ruby and Rack

Mas uma solução mais simples provavelmente é usar o recurso WebHooks do Discourse. Dessa forma, o Discourse pode fazer uma requisição web para o seu endpoint sempre que houver um novo tópico/postagem. Você pode encontrar mais informações aqui:

5 curtidas

Não vejo como webhooks estariam relacionados ou seriam úteis para um frontend Flutter.

Parece que o que o OP está procurando é uma implementação Dart do cliente MessageBus… que provavelmente teria que ser feita por engenharia reversa a partir deste código Javascript. Outra alternativa pode ser executar o código Javascript dentro do Dart e, em seguida, envolvê-lo em bindings para traduzir de Javascript para Dart. Uma porta direta para Dart deve ser a mais performática dessas duas.

Por favor, alguém me corrija se eu estiver errado. Isso não é algo que eu tenha investigado, mas acho a ideia de um frontend Flutter intrigante.

3 curtidas

A ideia seria Webhooks → seu backend → seu aplicativo. Portanto, o aplicativo não receberia os webhooks diretamente.

4 curtidas