作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在使用 socketio
用 Python 编写的套接字服务器与使用 Flutter Web 制作的客户端之间建立连接。
我测试了各种套接字包,如 adhara_socket_io 和 flutter_socket_io,但没有任何效果。我在 Android 上尝试了相同的代码片段,但它们也不起作用。
我一直在搜索,我找到了这个代码片段。它使用 Socket
包中的 dart.io
类。
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();
最佳答案
dart.io
包与 flutter web 不兼容。我想正如 pskink 建议的那样,websockets 是要走的路。您可以使用 web_socket_channel 包中的 HtmlWebSocketChannel
,如记录的 here 。我已经使用过这个包并且可以确认它在 flutter web 中运行良好。
在你的情况下应该使用如下内容。
var channel = HtmlWebSocketChannel.connect("ws://192.168.2.190:7003");
HtmlWebSocketChannel
或
IOWebSocketChannel
之间创建连接。如果您有兴趣,可以使用此
post * 中建议的基于条件 stub 的实现。
关于sockets - 我如何在 Flutter web 中使用套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60266060/
我是一名优秀的程序员,十分优秀!