当前位置: 首页 > 知识库问答 >
问题:

我如何使用带有Flutter web的套接字

杜浩壤
2023-03-14

我正在尝试在使用ocketio用Python编写的套接字服务器与使用Flutter Web制作的客户端之间建立连接。

我测试了各种套接字包,如adhara_socket_io和flutter_socket_io,但都不起作用。我在Android上尝试了相同的代码片段,但它们也不起作用。

我继续搜索,找到了这个代码片段。它使用dart.io包中的Socket类。

Socket socket = await Socket.connect('192.168.2.190', 7003);

    print('connected');

    // listen to the received data event stream
    socket.listen((List<int> event) {
      print(utf8.decode(event));
    });

    // send hello
    socket.add(utf8.encode('hello'));

    // wait 5 seconds
    await Future.delayed(Duration(seconds: 5));

    // .. and close the socket
    socket.close();

这个连接到Python服务器,并从Android发送数据,但当我从Web测试它时,我没有连接。

是否有一些额外的东西,我需要添加它在Web上工作?

或者在最坏的情况下,是否有其他方法来做我想做的事情,我的目标是在网站上显示视频源。视频实际上是从Python中拍摄的一组图像,有一些机器学习将在它们上执行,我想将它们发送到socket,每个图像一收到就显示出来,因此看起来像一个视频源。(使用React进行了类似的操作)

共有1个答案

童铭晨
2023-03-14

飞镖。io软件包与flutter web不兼容。我想,正如pskink所建议的那样,WebSocket是一条出路。您可以使用web_socket_channel包中的<code>HtmlWebSocketChannel

在您的情况下,应该使用以下内容。

var channel = HtmlWebSocketChannel.connect("ws://192.168.2.190:7003");

但请注意,这不能与常规flutter应用程序互操作。如果您的目标是同时针对android和flutter web,那么您应该根据您正在构建的目标有条件地处理此通道创建,并在HtmlWebSocketChannelIOWebSocketChannel之间做出决定来创建连接。如果您有兴趣,您可以使用本文*中建议的基于条件存根的实现。

*注意:这是我的帖子。:)

 类似资料:
  • 我一直在研究HandlerThread类,因为最初我使用的是一个简单的线程和处理程序,但是在Android中使用NetworkOnMainThreadException出现了一个裁剪器。 我似乎无法理解如何将套接字之类的东西引入到HandlerThread中,您可以在其中运行阻塞代码。但是您不能使用HandlerThread来实现这一点,因为您不应该覆盖run,因为这是循环器所在的位置。 而且我不

  • 问题内容: 目前看来这似乎行不通。我在Amazon ELB后面使用Faye和NodeJS。当我打开HTTPS时,连接不再可以代理。我在这里找不到未解决的问题:https : //forums.aws.amazon.com/message.jspa? messageID =283293。任何人都可以使它正常工作吗?在运行我自己的HAProxy实例之外,是否还有其他工作? 问题答案: 根据我们自己的测

  • 我在使用FOQElasticaBundle构建查询时遇到问题 我有3个实体 null

  • 问题内容: 我正在尝试使用PostgreSQL 9.2中添加的功能将查询结果映射到JSON 。 我在找出将连接的行表示为嵌套对象(1:1关系)的最佳方式时遇到麻烦 这是我尝试过的内容(设置代码:表格,示例数据,后跟查询): 查询本身: 我发现如果使用,我可以将结果字段分离为一个子对象,但似乎仅限于一个级别。我不能插入更多的语句,因为我认为在这种情况下我需要。 为我提供了列名,因为在该表的结果中,我

  • 本文向大家介绍如何在JavaScript \ HTML中使用套接字?,包括了如何在JavaScript \ HTML中使用套接字?的使用技巧和注意事项,需要的朋友参考一下 要使用套接字,请考虑JavaScript中的WebSocket接口。该接口使Web应用程序可以维护与服务器端进程的双向通信。 为了使Web应用程序能够与服务器端进程保持双向通信,此规范引入了WebSocket接口。 以下是一些解

  • 我正在开发一个在线的,基于文本的RPG(Github);目前我有一个PHP后端,它将会话数据存储在redis服务器中。对于需要实时通信的所有内容(聊天,消息传递和连接用户列表),我使用Node.js和 socket.io 用于websocket。 我目前在我的网络索克服务器上有3个命名空间: 消息服务器 在线服务器 聊天服务器 我已经让它工作了,但恐怕大部分是由“黑客”制作的。现在,我无法向特定的