首页 > 其他 > 详细

Flutter Socket连接废话不多? 直接上代码:

时间:2019-08-24 00:57:01      阅读:358      评论:0      收藏:0      [点我收藏+]

记得把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字段去判断就好了。

Flutter Socket连接废话不多? 直接上代码:

原文:https://www.cnblogs.com/liyanyan665/p/11402907.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!