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抓包

内容的提问来源于stack exchange,提问作者Christopher Horsfield
相关产品推荐
相关产品推荐

