Я пытался подключить клиента сокета 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'));
называется. Это означает, что проблема может быть в прослушивании событий .