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字段去判斷就好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM