android - Android Socket.IO 超时,无法创建连接
问题描述
好的,所以我有一个带有 IP 的服务器:38.66.221.111
和服务器端口:52323
起初,我想检查服务器端的套接字是否可用,所以我下载Termius
了应用程序来测试它:
所以我添加了IP地址38.66.221.111
,检查了“TELNET”并添加了端口52323
,连接成功。
然后我去了我的 Android 应用程序并尝试使用nkzawa
套接字库进行套接字连接。
代码如下所示:
try {
socket = IO.socket("http://38.66.221.111:52323")
socket.apply {
on(Socket.EVENT_CONNECT, onConnect)
on(Socket.EVENT_DISCONNECT, onDisconnect)
on(Socket.EVENT_CONNECT_ERROR, onConnectError)
on(Socket.EVENT_CONNECT_TIMEOUT, onConnectTimeout)
}
} catch (e: URISyntaxException) {
e.printStackTrace()
}
从收到的日志中,我得到的只是onConnectError
回调onConnectTimeout
。为什么它可以在 Termius 上运行,但不能在我的应用程序上运行?
com.github.nkzawa.socketio.client.SocketIOException: timeout
在 onConnectError 回调中收到。
我正在使用的库:
implementation('com.github.nkzawa:socket.io-client:0.6.0', {
exclude group: 'org.json', module: 'json'
})
什么对我不起作用:
- 添加网络权限
- 禁用超时
socket.io().timeout(-1)
解决方案
推荐阅读
- javascript - 一个按钮可在单击时执行三个或更多操作
- sql - 试图创建一个触发器让用户一天只插入 5 次
- mysql - MySql 事件调度器每天在特定时间复制和插入
- asp.net-core - Kestrel 服务器错误 - 应用程序在未读取整个请求正文的情况下完成
- r - 条形图标签下标不使用表达式
- ruby - 核心 2.3.0 与 stdlib 2.5.3 的时间
- sql - 选择值已更改的行
- python - Selenium webdriver 服务器错误 (500) 错误
- c# - 使用 linq 修改列表
- swift - Swift MessageKit - 无法转换类型“_?”的值 到预期的参数类型“URL?”