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:
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.
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:
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.