Flutter Socket连接废话不多? 直接上代码:
记得把host.port.和发送的参数换成你自己的
import 'dart:io';
import 'dart:async';
class SocketManage {
static String host='xxx.xxx.xxx.xxx';
static int port=80;
static Socket mSocket;
static Stream<List<int>> mStream;
static initSocket() async{
await Socket.connect(host,port).then((Socket socket) {
mSocket = socket;
mStream=mSocket.asBroadcastStream(); //多次订阅的流 如果直接用socket.listen只能订阅一次
}).catchError((e) {
print('connectException:$e');
initSocket();
});
}
static void addParams(List<int> params){
mSocket.add(params);
}
static void dispos(){
mSocket.close();
}
}
使用:
1.初始化?
SocketManage.initSocket(); //这个在main.dart中调用一次就行了
2.在需要发送socket请求的dart文件中调用下面的进行监听和请求
List<int> a=[xx,yy,zz]; //请求参数
SocketManage.mStream.listen(onReceiver);
SocketManage.addParams(a);
3.重写onReceiver方法接收返回值
//接收返回值 (http://www.amjmh.com/v/BIBRGZ_558768/)
void onReceiver(List<int> event) {
MyConstant.packageNum++;
debugPrint('useragreement listen :$event');
}
如果有遇到一个页面多次请求? ?自己添加一个tag字段去判断就好了。
原文地址:https://www.cnblogs.com/liyanyan665/p/11402907.html
- Golang适合高并发场景的原因分析
- 浅谈MySQL中的事务隔离级别(r11笔记第86天)
- 巧用echo命令解决Samba批量添加用户难题
- 分分钟搭建MySQL Group Replication测试环境(r11笔记第82天)
- MySQL 5.7 Group Replication错误总结(r11笔记第84天)
- 空结构体struct{}解析
- 动态创建MySQL Group Replication的节点(r11笔记第84天)
- sysbench压测小记(r11笔记第99天)
- WordPress启用memcached动态缓存以及报错解决
- 升级CentOS6.5内核,开启Nginx的fastopen和reuseport特性
- Nginx网站使用CDN之后禁止用户真实IP访问的方法
- 相差数十倍的SQL性能分析(r11笔记第98天)
- shell脚本实现整站缓存和预缓存,进一步提升网站整体加载速度
- Oracle中的PGA监控报警分析(r11笔记第96天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Hash一致性闭环算法 - ( 适用于Redis扩容、Nginx多级缓存 等等 )
- MySQl 事务测试
- 百万数据,SQL数据分流查询
- Linux 安装Apr - 提高Tomcat 的可伸缩性和性能
- Linux下MySQL的彻底卸载
- Excel生成导入SQL语句,快速创建批量 insert/update/delete
- MySQL 执行计划详解
- MySQL 5.7详细安装步骤
- win10必备效率预览神器-Quick look
- 史上最全-Nginx和Tengine安装部署
- Jenkins+Ansible 实现自动化运维 DevOps
- FFmpeg 内容介绍 音视频解码和播放
- 开源:安卓手机app控制arduino,通过esp8266-01
- 聊聊dubbo-go的metricsFilter
- 程序设计理念-CentOs7实践Nginx-带来安装服务的通用法则