我有一个控制器(MyController),它在初始化时从WebSocket连接(wsService)请求数据。
检测并等待WebSocket连接打开,然后从控制器发出请求的最佳方法是什么?
现在我使用以下解决方案:
my_controller.dart:
MyController(wsService ws){
// when refresh() in wsService is called,
// the call is redirected to MyController's load()
ws.refresh = load;
}
load(){
ws.send(request);
}
ws_service.dart:
onConnect(){ //this is called when websocket connection is opened
refresh(); //this calls MyController's load()
}
3条答案
按热度按时间mkshixfv1#
我仍然认为你应该做这样的事情,而不是让Angular轮询状态。
lb3vh1jj2#
这个解决方案仍然使用轮询,但是使用这个解决方案,WebSocket连接的处理被保存在一个地方(
wsService
),并且在函数调用中没有重复。sqxo8psd3#
使用这个软件包https://pub.dev/packages/websocket_universal,你可以像这样等待连接:
完整示例: