最新版本的 socket io nodejs 未连接到 flutter 应用程序

Latest version of socket io nodejs is not connecting to flutter applications

目前,我正在尝试将套接字与 flutter 应用程序一起使用,当我使用版本 ^2.3.0 时它工作正常。但是当我尝试在 nodejs 中使用最新版本的 socket io 时,即 4.1.2,当它仍在使用浏览器时它并没有。 我无法弄清楚发生了什么。

我正在分享 flutter socket io 连接以及 nodejs 应用程序的代码。

import 'package:getparked/Utils/DomainUtils.dart';
import 'package:socket_io_client/socket_io_client.dart' as IO;

class SocketUtils {
  IO.Socket socketIO;

  IO.Socket init(onSocketConnected, onSocketDisconnected) {
    socketIO = IO.io(domainName, <String, dynamic>{
      'transports': ['websocket'],
      'upgrade': false
    });

    socketIO.connect();
    socketIO.on("connect", (data) {
      print("Connection Successfully Established...");
      onSocketConnected(socketIO);
    });

    socketIO.on("reconnect", (data) {
      print("Socket Connected Again.. Reconnection");
    });

    socketIO.on("disconnect", (data) {
      print("Socket Disconnected Unexpectedly..");
      onSocketDisconnected(socketIO);
    });

    return socketIO;
  }
}

节点js代码

const express = require('express');
const app = express();
const server=require('http').createServer(app);
io = require('socket.io')(server, {
  cors:{
      origin:"*"
  },
});
io.on('connection', (socket) => { 
  console.log(socket.id);
});
server.listen(+port, () => {
  console.log("Server is running...");
  console.log(name + " " + port);
  vehicleUtils.init();
  adminUtils.init();
});

我有任何人知道在不降级版本的情况下在 flutter 或 nodejs 中修复此问题的任何方法请告诉我。

首先,在我将其发布到此处几天后找到了确切的解决方案。 问题不在于后端或 nodejs,尽管它看起来像是后端的问题,但事实并非如此。

我使用的是这个版本的 socket io 客户端,它不适合 nodejs 中较新版本的 socket io 连接。

然后我在pub的socket io client文档中找到了这个。开发

然后我只是改变了版本重建它并且它有效。 尝试将 Flutter 应用程序中的 socket io 客户端版本更改为 2.0,这肯定会解决你的问题。