Flutter Socket

1,106 阅读1分钟

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。