Проблемы с прослушиванием событий при подключении flutter socket-io-client к sails server - PullRequest
0 голосов
/ 04 августа 2020

Я пытался подключить клиента сокета flutter к сокету паруса ('http: // ____: 1337 / chat-socket'), используя socket_io_client плагин.

сокет успешно подключается, но клиент сокета flutter не может прослушать событие «latest_message». Клиент Flutter не получает транслируемых данных. Но когда я пробую те же функции в браузере, используя некоторые sails.io. js, все работает, я могу подключаться и получать широковещательные данные в браузере, но не на клиенте сокета flutter.

код флаттера

@override
  void initState() {
    super.initState();
    connectChatSocket();
  }

  connectChatSocket() async {
    IO.Socket socket = IO.io('http://____:1337/chat-socket', <String, dynamic>{
      'transports': ['websocket'],
    });

    socket.on("connected", (_) => print('Connected'));
    socket.on("disconnect", (_) => print('Disconnected'));
    // HOW TO FIX THE BELOW 'latest_message' EVENT TO START LISTENING?
    socket.on('latest_message', (latestMsg) {
      return print('Latest Message: $latestMsg');
    });
    print('latest_message event: ${socket.hasListeners('latest_message')}');
  }

код паруса

module.exports = {
  chatSocket: async function (req, res) {
    sails.log('Establishing chat-channel socket connection..');

    sails.sockets.join(req, 'chat-channel');
    await sails.sockets.broadcast('chat-channel', 'latest_message', {
      message: 'default'
    });

    return res.ok();
  }
}

ПРИМЕЧАНИЕ когда я перезапускаю сервер nodejs или отменяю его, функция на клиенте флаттера socket.on("disconnect", (_) => print('Disconnected')); называется. Это означает, что проблема может быть в прослушивании событий .

...