Flutter socket_io_client срабатывает несколько раз - PullRequest
0 голосов
/ 28 апреля 2020

Я использую socket_io_client для своего проекта флаттера. Он работает нормально, но каждый раз, когда я go возвращаюсь назад и снова к виджету, соединение с сокетом снова срабатывает и печатает n + 1 количество раз. То же самое с отключением. Как мне решить это?

IO.Socket socket;
  @override
  void initState() {
    super.initState();
    createSocketConnection();
  }
@override
  void dispose() {
    super.dispose();
    socket.disconnect();
  }
  createSocketConnection() {
    socket = IO.io("url", <String, dynamic>{
      'transports': ['websocket'],
      'autoConnect': false
    });
    socket.on("connect", (data) {
      print("connected");
      socket.emit("join", groupId);
    });
    socket.on("newMessage", (data) {
      print(data);
    });
    socket.on("disconnect", (_) {
      print("disconnected");
    });
    socket.on("close", (_) {
      print("closed");
    });
    socket.connect();
  }

1 Ответ

0 голосов
/ 28 апреля 2020

случается, потому что вы инициировали createSocketConnection (); в initieState вы должны использовать одну из архитектур управления состоянием, я предлагаю вам использовать библиотеку blo c, вот ссылка blo c библиотека , надеюсь, она вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...