如何将套接字与颤振网络一起使用



我正在尝试在使用socketio用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 拍摄的图像,将对它们执行一些机器学习,我想通过套接字发送它们,每个图像在收到后立即显示,因此它看起来像一个视频源。(使用React做了类似的事情(

dart.io包与 Flutter Web 不兼容。我想正如 pskink 建议的那样,websockets 是要走的路。可以使用web_socket_channel包中的HtmlWebSocketChannel,如此处所述。我已经使用过这个软件包,可以确认它在颤振网络中运行良好。

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新