You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端Socket.io.client:如何延长Socket超时时间?

问题:Socket.io连接NTRIP服务器超时并陷入重连循环

尝试使用socket.io连接NTRIP服务器,能看到认证请求发出且收到ICY 200 OK响应,但连接会在60秒后超时,之后陷入重连循环。

代码

let extraHeaders = [
    "Accept-Encoding" : "*",
    "Accept-Language" : "*",
    "User-Agent" : "NTRIP KNTRIPClient/20240328",
    "Accept" : "*/*",
    "Connection" : "close",
    "Authorization" : "Basic a3Vib3RheTE6a3Vib3RheTE="
]

manager = SocketManager(socketURL: URL(string: "http://184.105.97.107:9002")!)
manager?.setConfigs(
    SocketIOClientConfiguration(
        arrayLiteral: .log(true),
        /*.reconnects(false),*/
        .path("/AZGPS_RTCM3"),
        .extraHeaders(extraHeaders)
    )
)


socket = manager?.defaultSocket

socket?.onAny { socketAnyEvent in
    print(socketAnyEvent)
}

socket?.connect()

日志

LOG SocketIOClient{/}: 处理事件:statusChange,数据:[connecting, 2]
SocketAnyEvent: 事件:statusChange 内容:Optional([connecting, 2])
LOG SocketIOClient{/}: 加入命名空间 /
LOG SocketManager: 引擎未开启时尝试连接Socket,正在连接
LOG SocketManager: 添加引擎
LOG SocketEngine: 启动引擎。服务器:http://184.105.97.107:9002
LOG SocketEngine: 握手
LOG SocketEnginePolling: 执行轮询GET请求 http://184.105.97.107:9002/AZGPS_RTCM3/?transport=polling&b64=1&EIO=4
任务 <5CE2FA1D-F6A4-4EA2-9412-FAB544203387>.<1> 因错误 [-1001] 结束 Error Domain=NSURLErrorDomain Code=-1001 "请求超时。" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600000c08840 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <5CE2FA1D-F6A4-4EA2-9412-FAB544203387>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <5CE2FA1D-F6A4-4EA2-9412-FAB544203387>.<1>"
), NSLocalizedDescription=请求超时。, NSErrorFailingURLStringKey=http://184.105.97.107:9002/AZGPS_RTCM3/?transport=polling&b64=1&EIO=4, NSErrorFailingURLKey=http://184.105.97.107:9002/AZGPS_RTCM3/?transport=polling&b64=1&EIO=4, _kCFStreamErrorDomainKey=4}
ERROR SocketEnginePolling: 请求超时。
ERROR SocketEngine: 请求超时。
ERROR SocketManager: 请求超时。
LOG SocketIOClient{/}: 处理事件:error,数据:["请求超时。"]
SocketAnyEvent: 事件:error 内容:Optional(["请求超时。"])
LOG SocketManager: 开始重连
LOG SocketManager: 尝试重连
LOG SocketIOClient{/}: 处理事件:reconnectAttempt,数据:[-1]
SocketAnyEvent: 事件:reconnectAttempt 内容:Optional([-1])

WireShark抓包

WireShark抓包结果

内容的提问来源于stack exchange,提问作者Christopher Horsfield

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 03:52:36