Flutter Socket鏈接廢話很少? 直接上代碼:

記得把host.port.和發送的參數換成你本身的socket

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();
}

}
使用:async

1.初始化?debug

SocketManage.initSocket(); //這個在main.dart中調用一次就好了
2.在須要發送socket請求的dart文件中調用下面的進行監聽和請求it

List<int> a=[xx,yy,zz]; //請求參數
SocketManage.mStream.listen(onReceiver);
SocketManage.addParams(a);
3.重寫onReceiver方法接收返回值io

//接收返回值 (http://www.amjmh.com/v/BIBRGZ_558768/)
void onReceiver(List<int> event) {
MyConstant.packageNum++;
debugPrint('useragreement listen :$event');
}
若是有遇到一個頁面屢次請求? ?本身添加一個tag字段去判斷就行了。event

相關文章
相關標籤/搜索