Flutter Socket使用途中所遇到的一些麻烦
最近我在研究flutter的socket连接,因为要与go的接口对接,所以必须使用socket。而socket是使用的dio库,网上相关的资料要么已经过时,要么就是不够详细,所以在踩了无数个坑之后总结此文章。 废话不多说,上代码。
class SocketMassge with ChangeNotifier {
String Data = "";
static var socketcli;
ConnectServer() async {
socketcli = await Socket.connect("120.0.0.1", 80);//连接服务器
utf8.decoder.bind(socketcli).listen((data) {//监听数据
Data = data;
print(Data);
notifyListeners();//更新数据
});
}
void sendmsg(String data) async {
socketcli.writeln(data);//发送数据
print(data);
}
void close() {
socketcli.close();
}
}
只要在需要使用socket的页面调用connectserver函数就可以socket对接了,还有非常重要的一点是,这里用到了provider状态管理,如果需要拿到服务器传输的数据,必须先做一层provider。