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

Ayu*_*wal 3 real-time node.js socket.io flutter

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

我正在分享 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;
  }
}
Run Code Online (Sandbox Code Playgroud)

节点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();
});
Run Code Online (Sandbox Code Playgroud)

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

Ayu*_*wal 12

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

我使用的是这个确切版本的套接字 io 客户端,它不适合 Nodejs 中更高版本的套接字 io 进行连接。

然后我开始了解这一点,这是我在酒吧的套接字io客户端的文档中找到的。开发人员。

在此输入图像描述

然后我只是改变了版本重建它并且它工作了。尝试将 Flutter 应用中的套接字 io 客户端版本更改为 2.0,这肯定会解决您的问题。