【问题标题】:Latest version of socket io nodejs is not connecting to flutter applications最新版本的socket io nodejs未连接到flutter应用程序
【发布时间】:2021-09-04 14:12:57
【问题描述】:

目前,我正在尝试将套接字与颤振应用程序一起使用,当我使用版本 ^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 中解决此问题,而无需降级版本,请告诉我。

【问题讨论】:

  • 与我发生完全相同的问题。有什么进展吗?

标签: node.js flutter socket.io real-time


【解决方案1】:

首先,在我在这里发布几天后找到了确切的解决方案。 问题不在于后端或 nodejs,尽管它看起来不是后端的问题。

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

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

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

【讨论】:

  • 谢谢!我有同样的问题并且解决了它:-)
  • 伙计们,我厌倦了使用较新版本的库,但我能够添加的最新版本是 1.0.1 。如何更新到更高版本? @本杰明
  • socket io 客户端的最新版本是socket_io_client: ^2.0.0-beta.4-nullsafety.0 但它处于预发布模式。 pub.dev/packages/socket_io_client/versions/… 你也可以使用 1.0.1,但是你必须在服务器上使用旧版本的旧套接字 io。
猜你喜欢
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
  • 2022-09-27
  • 2021-01-15
  • 1970-01-01
  • 2020-01-18
  • 2022-10-06
  • 1970-01-01
相关资源
最近更新 更多