dart的Websocket为什么找不到onOpen方法?

我主要使用的是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函数。


好了,又水了一篇。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/100358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

按关键字搜索淘宝商品API接口获取商品销量、优惠价、商品标题等参数示例

关键词搜索商品接口的作用是提供搜索功能,让用户根据关键词在电商平台上搜索商品,并根据搜索条件和偏好获取相关的商品列表和推荐结果,提高用户购物体验和准确度。对于电商平台而言,这个接口也能帮助用户发现更多商品、提升销量和…

PostgreSQL安装错误:Problem running post-install step

问题描述 安装包:pgpostgresql-14.9-1-windows-x64 postgresql-16.0-1-windows-x64 采取措施 一、 首先安装的是16版本的程序,报错后卸载尝试安装14版本软件,依旧报错。 二、 网上搜索,发现该博客: PostgreSQL安…

Springboot 接收POST、json、文本数据实践

一、接收 Form 表单数据 1,基本的接收方法 (1)下面样例 Controller 接收 form-data 格式的 POST 数据: import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.Request…

windows平台FairMOT的实现

环境:python3.6pytorch1.1.0torchvision0.3.0cuda9.2vs2015 该项目需要装3个c库(dcn_v2,apex,cython_bbox)特别坑,各种环境不匹配,各种bug。本人c小白,但是一路摸索总算成功了。下面…

数学术语之源——单射(injection),满射(surjection),双射(bijection)

1. 单射或入射(injection) 1.1 injection的词源 词义为“a forcing of a fluid into a body (with a syringe, etc.)(迫使液体进入体内(使用注射器等))”(始于15世纪早期),来自古法语“iniection ”(14世纪)或者直接来自拉词语“iniectionem (主格‘iniectio’)”&…

游戏软件开发与应用软件开发有什么不同呢?

游戏软件开发和应用软件开发是两种不同类型的软件开发,它们在许多方面都有不同之处。以下是它们之间的一些主要区别: 目标用户群体: 游戏软件开发的主要目标是提供娱乐和休闲体验,通常面向广大的游戏玩家群体。游戏软件的设计和开…

【嵌入式】常用串口协议与转换芯片详解

文章目录 0 前言1 一个通信的协议的组成2 常用协议名词解释2.1 UART2.2 RS-2322.3 RS-4852.4 RS-4222.5 比较 3 常用的芯片 0 前言 最近有点想研究USB协议,正好也看到有评论说对如何选择USB转串口模块有些疑惑,其实我也一直很想写一篇关于串口的总结式的…

修炼k8s+flink+hdfs+dlink(四:k8s(二)组件)

一:控制平面组件。 控制平面组件会为集群做出全局决策,比如资源的调度。 以及检测和响应集群事件,例如当不满足部署的 replicas 字段时, 要启动新的 pod)。 1. kube-apiserver。 该组件负责公开了 Kubernetes API&a…

浏览器详解(四) 渲染

大家好,我是半虹,这篇文章来讲浏览器渲染 1、基本介绍 浏览器是多进程多线程的架构,包括有浏览器进程、渲染器进程、GPU 进程、插件进程等 在上篇文章中我们介绍过浏览器进程,作为浏览器主进程,负责浏览器基本界面的…

天龙八部服务端Public目录功能讲解

PublicDataAIScript文件夹中 script(0~210).ai怪物AI脚本设定如是否主动攻击是否使用技能 PublicDataScript文件夹中 eventbossgroupbg_BossAI_CreateMonster.lua 是BOSS群 刷小怪通用脚本 PublicDataScript文件夹中 eventbossgroupbg_CangShan.lua 苍山 BOSS群刷新脚本 Public…

创建properties资源文件,并由spring组件类获取资源文件

1.1 创建资源文件file-upload-dev.properties #文件上传地址 file.imageUserFaceLocation=/workspaces/images/foodie/faces #图片访问地址 file.imageServerUrl=http://localhost:8088/foodie/faces1.2 创建spring组件获取资源文件类FileUpload import org.springframework.…

超低延时直播技术演进之路-进化篇

一、概述 网络基础设施升级、音视频传输技术迭代、WebRTC 开源等因素,驱动音视频服务时延逐渐降低,使超低延时直播技术成为炙手可热的研究方向。实时音视频业务在消费互联网领域蓬勃发展,并逐渐向产业互联网领域加速渗透。经历了行业第一轮的…

Doris 2.0.1 DockerFile版 升级实战

1、Doris 2.0.1 DockerFile 的制作 参考 Doris 2.0.1 Dockerfile制作-CSDN博客 2、之前的Doris 集群通过 Docker容器进行的部署,需提前准备好Doris2.0.1的镜像包 参考: 集群升级 - Apache Doris Doris 升级请遵守不要跨两个及以上关键节点版本升级的…

Unix Network Programming Episode 78

‘getaddrinfo’ Function The gethostbyname and gethostbyaddr functions only support IPv4. The API for resolving IPv6 addresses went through several iterations, as will be described in Section 11.20(See 8.9.20); the final result is the getaddrinfo function…

ansible部署二进制k8s

简介 GitHub地址: https://github.com/chunxingque/ansible_install_k8s 本脚本通过ansible来快速安装和管理二进制k8s集群;支持高可用k8s集群和单机k8s集群地部署;支持不同版本k8s集群部署,一般小版本的部署脚本基本是通用的。 …

js文件的入口代码及需要入口代码的原因

1 在js解释器解释代码时,是从上往下逐条执行的,但是在js文件中,存在许多进行页面交互的代码,它们需要获取到当前按钮元素,比如:var btn document.querySelector(button), 如果将js文件写在了页面结…

java项目实现不停服更新的4种方案(InsCode AI 创作助手)

文章目录 1. Blue-Green 部署2. 滚动更新3. 使用负载均衡器4. 灰度发布 在软件开发和维护中,不停机更新是确保应用程序持续可用的关键任务之一。以下是四种常见的不停机更新策略及其示例: 1. Blue-Green 部署 概念: Blue-Green 部署是一种部…

Jenkins 构建时动态获取参数

文章目录 问题简介Groovy 脚本配置进阶 问题 在做jenkins项目时,有些参数不是固定写死的,而是动态变化的,这时我们可以用 Active Choices 插件来远程调用参数 问题解决方案:执行构建前使用Groovy Scrip调用本地脚本,…

点云处理开发测试题目 完整解决方案

点云处理开发测试题目 文件夹中有一个场景的三块点云数据,单位mm。是一个桌子上放了一个纸箱,纸箱上有四个圆孔。需要做的内容是: 1. 绘制出最小外接立方体,得到纸箱的长宽高值。注意高度计算是纸箱平面到桌子平面的距离。 2. 计算出纸箱上的四个圆的圆心坐标和半径,对圆…

flutter StreamSubscription 订阅者 stream

当您使用[Stream.listen]收听[Stream]时 则返回[StreamSubscription]对象 List<StreamSubscription?> subscriptions []; overridevoid initState() {super.initState();//subscriptions列表添加两个StreamSubscription。Stream.listen返回StreamSubscription对象subs…