已解决
dart的Websocket为什么找不到onOpen方法?
来自网友在路上 162862提问 提问时间:2023-10-10 23:53:08阅读次数: 62
最佳答案 问答题库628位专家为你答疑解惑
我主要使用的是JAVA,而JAVA使用Websocket时,Websocket一定会有个onOpen方法。
@ClientEndpoint
public class WebsocketListener {@OnOpenpublic void onOpen(Session session) throws IOException {}@OnMessagepublic void onMessage(ByteBuffer byteBuffer) {}@OnClosepublic void onClose(Session session, CloseReason closeReason) {}@OnErrorpublic void onError(Session session, Throwable t) {}
}
我用的第三方Websocket框架也一定会有onOpen方法。
我就下意识的认为Websocket一定会有onOpen方法。
直到我遇到了dart。
我对dart不是很了解,函数的使用方法都是在网上搜的,所以很容易遇到一些简单的问题。
var socket = await WebSocket.connect(url);
//监听
socket.listen((data) {}, onDone: () {print('WebSocket断开');
},onError: (e){print("服务异常:$e");
});
可以看到socket.listen函数并没有提供onOpen方法,我点进socket查看函数,确实没有onOpen的处理方法。
然后找了一个第三方框架,也是一样完全找不到…
后来我反应过来了…
我突然觉得我真的是个小丑…
dart的WebSocket.connect(url)函数本身就是异步的。
await 等待返回结果,就表示已经得到服务器响应了,后面只需要判断socket状态是不是open就可以了。
var socket = await WebSocket.connect(url);
if(socket.readyState == WebSocket.open){//监听socket.listen((data) {}, onDone: () {print('WebSocket断开');},onError: (e){print("服务异常:$e");});
}
如此简单的问题,我居然找了半天的open函数。
好了,又水了一篇。
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"dart的Websocket为什么找不到onOpen方法?":http://eshow365.cn/6-18641-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: Can 通信-协议
- 下一篇: springboot项目静态资源映射