【发布时间】:2019-07-22 02:50:54
【问题描述】:
我必须连接到我的 Flutter 应用程序中的套接字服务。我尝试使用一些插件,如 ADHARA_SOCKET_IO,但不成功。 我的背是建立在nodeJS上的。
我尝试运行 ADHARA 插件作者分配的服务来测试我的应用程序,因为在我的 API 上它不起作用......但即使是示例应用程序也可以运行。 那是错误:
I/flutter (16986): io.socket.engineio.client.EngineIOException: websocket 错误
(当我运行作者的serve+app时)
ps:我确实检查了路径:'127.0.0.1:7000' / 0.0.0.0:7000。
所以,在我的应用程序中,我确实编写了一个函数来在按钮中调用套接字的初始化。
下面是代码功能。这是调用函数时的错误:
E/Adhara:SocketIOPlugin(15905): java.lang.ClassCastException: java.lang.Integer 不能转换为 java.lang.Long I/flutter (15905): io.socket.engineio.client.EngineIOException: websocket 错误
connectarSocket() async {
SocketIO socket = await SocketIOManager().createInstance(
SocketOptions('http://127.0.0.1:7000'));
socket.onConnect((data) {
print("connected...");
print(data);
socket.emit("message", ["Hello world!"]);
});
socket.on("news", (data) {
//sample event
print("news");
print(data);
});
socket.connect();
}
实际上,当我使用与示例应用程序(作者)相同的代码时,我得到了这个: I/flutter (16986): io.socket.engineio.client.EngineIOException: websocket 错误
当我使用这个函数时,我得到了这个: E/Adhara:SocketIOPlugin(15905): java.lang.ClassCastException: java.lang.Integer 不能转换为 java.lang.Long I/flutter (15905): io.socket.engineio.client.EngineIOException: websocket 错误
【问题讨论】:
-
我在 Flutter 1.7++;
-
您是否尝试过将 URI 更改为 10.0.2.2:7000?
-
嘿,我也遇到了同样的错误……你找到解决办法了吗?
-
嗨,是的,我做到了。这是我工作的一个例子(github.com/allansrc/flutter-socket-example),然后是我写的葡萄牙语教程。你可以翻译它。 dartlang.com.br/2019/09/09/…
-
嘿...非常感谢您的回复...我尝试了您的代码,但出现以下错误:未处理的异常:PlatformException(java.net.URISyntaxException:索引0处的方案名称中的非法字符: 10.0.0.2:80, null, null) 当我将 URL 更改为“10.0.2.2:3000”时,我仍然收到相同的错误:io.socket.engineio.client.EngineIOException: websocket error 任何想法,什么是导致这个问题?