Usando websockets/eventos enviados pelo servidor com Angular Dart
-
20-12-2019 - |
Pergunta
Eu estava tentando usar o angular dart com websockets/eventos enviados pelo servidor e não consegui encontrar nenhuma documentação/exemplos (existem alguns para angularJS, mas isso parece muito diferente para essas coisas).Algumas coisas que tentei também não funcionaram.
Alguém sabe como fazer isso?
Aqui está uma versão do que tentei e o erro:
@NgController (
selector: "ACdistribution",
publishAs : "dstbn")
class ACDstbnController{
List <WtdPres> distbn;
void updateDstbn(List<WtdPres> newdstbn){
distbn = newdstbn;
}
final dstbnsrc = new EventSource("../dstbns")
..onMessage.listen((event){
List wps = JSON.decode(event.data);
List <WtdPres> newdistbn = wps.map((wp) => new WtdPres.fromJson(wp));
updateDstbn(newdistbn);
});
}
O erro que recebi na compilação do pub foi:
web/provingground.dart:55:5:
'updateDstbn' is only available in instance methods.
updateDstbn(newdistbn);
^^^^^^^^^^^
Solução
Existem limitações sobre o que você pode fazer nos inicializadores dos campos finais.
Você pode tentar colocar esse código dentro do construtor
var dstbnsrc;
ACDstbnController() {
dstbnsrc = new EventSource("../dstbns")
..onMessage.listen((event){
List wps = JSON.decode(event.data);
List <WtdPres> newdistbn = wps.map((wp) => new WtdPres.fromJson(wp));
updateDstbn(newdistbn);
});
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow