【发布时间】:2018-05-24 19:00:18
【问题描述】:
我们有一个 Angular 2 应用程序,它会随机停止请求 15 秒。问题似乎是 chrome 用完了 TCP/IP 连接。问题仅在chrome中。请求在 chrome dev 选项卡中获取连接 ID: Shows stalling and no connection id
15 秒后响应加载为空。
在 chrome://net-internals/#events 中,请求如下所示:
寻找 15 秒的间隔,chrome 告诉我什么?
t=543333 [st= 50] HTTP_STREAM_PARSER_READ_HEADERS [dt=15062]
t=558395 [st=15112] HTTP_TRANSACTION_READ_RESPONSE_HEADERS
全部:
t=543283 [st= 0] +REQUEST_ALIVE [dt=15113]
--> priority = "MEDIUM"
--> url = "https://www.struqtur.se/hyperion/GraphQl?hyperionRevertParapaar=6.4186284125575295"
t=543283 [st= 0] +URL_REQUEST_DELEGATE [dt=1]
t=543283 [st= 0] DELEGATE_INFO [dt=1]
--> delegate_blocked_by = "tillägget Adblock Plus"
t=543284 [st= 1] -URL_REQUEST_DELEGATE
t=543284 [st= 1] +URL_REQUEST_START_JOB [dt=15111]
--> load_flags = 258 (BYPASS_CACHE | VERIFY_EV_CERT)
--> method = "POST"
--> upload_id = "0"
--> url = "https://www.struqtur.se/hyperion/GraphQl?hyperionRevertParapaar=6.4186284125575295"
t=543284 [st= 1] URL_REQUEST_DELEGATE [dt=0]
t=543284 [st= 1] HTTP_CACHE_GET_BACKEND [dt=0]
t=543284 [st= 1] +HTTP_STREAM_REQUEST [dt=49]
t=543284 [st= 1] HTTP_STREAM_JOB_CONTROLLER_BOUND
--> source_dependency = 45248 (HTTP_STREAM_JOB_CONTROLLER)
t=543333 [st= 50] HTTP_STREAM_REQUEST_BOUND_TO_JOB
--> source_dependency = 45249 (HTTP_STREAM_JOB)
t=543333 [st= 50] -HTTP_STREAM_REQUEST
t=543333 [st= 50] +UPLOAD_DATA_STREAM_INIT [dt=0]
t=543333 [st= 50] UPLOAD_DATA_STREAM_INIT [dt=0]
--> is_chunked = false
--> net_error = 0 (?)
--> total_size = 151
t=543333 [st= 50] -UPLOAD_DATA_STREAM_INIT
--> is_chunked = false
--> net_error = 0 (?)
--> total_size = 151
t=543333 [st= 50] +HTTP_TRANSACTION_SEND_REQUEST [dt=0]
t=543333 [st= 50] HTTP_TRANSACTION_SEND_REQUEST_HEADERS
--> POST /hyperion/GraphQl?hyperionRevertParapaar=6.4186284125575295 HTTP/1.1
Host: www.struqtur.se
Connection: keep-alive
Content-Length: 151
Pragma: no-cache
Cache-Control: no-cache
Accept: application/json, text/plain, */*
Origin: https://www.struqtur.se
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
Content-Type: application/json
Referer: https://www.struqtur.se/v2/day/handle
Accept-Encoding: gzip, deflate, br
Accept-Language: sv-SE,sv;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: [408 bytes were stripped]
t=543333 [st= 50] HTTP_TRANSACTION_SEND_REQUEST_BODY
--> did_merge = false
--> is_chunked = false
--> length = 151
t=543333 [st= 50] +UPLOAD_DATA_STREAM_READ [dt=0]
--> current_position = 0
t=543333 [st= 50] UPLOAD_DATA_STREAM_READ [dt=0]
--> current_position = 0
t=543333 [st= 50] -UPLOAD_DATA_STREAM_READ
t=543333 [st= 50] UPLOAD_DATA_STREAM_READ [dt=0]
--> current_position = 151
t=543333 [st= 50] -HTTP_TRANSACTION_SEND_REQUEST
t=543333 [st= 50] +HTTP_TRANSACTION_READ_HEADERS [dt=15062]
t=543333 [st= 50] HTTP_STREAM_PARSER_READ_HEADERS [dt=15062]
t=558395 [st=15112] HTTP_TRANSACTION_READ_RESPONSE_HEADERS
--> HTTP/1.1 200 OK
Date: Mon, 11 Dec 2017 09:01:54 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-cache, no-transform
Pragma: no-cache
Content-Length: 53
Connection: close
Content-Type: application/json
t=558395 [st=15112] -HTTP_TRANSACTION_READ_HEADERS
t=558395 [st=15112] URL_REQUEST_DELEGATE [dt=0]
t=558395 [st=15112] -URL_REQUEST_START_JOB
t=558395 [st=15112] URL_REQUEST_DELEGATE [dt=0]
t=558395 [st=15112] HTTP_TRANSACTION_READ_BODY [dt=0]
t=558395 [st=15112] URL_REQUEST_JOB_FILTERED_BYTES_READ
--> byte_count = 53
t=558395 [st=15112] HTTP_TRANSACTION_READ_BODY [dt=1]
t=558396 [st=15113] -REQUEST_ALIVE
Fininshed request in chrome dev tab
我已经阅读了很多线程并试图解决这个问题但没有运气
Chrome stalls when making multiple requests to same resource?
https://bugs.chromium.org/p/chromium/issues/detail?id=46104
https://bugs.chromium.org/p/chromium/issues/detail?id=447463
我发现的线程/问题相似,但没有解决方案,我希望有人对此类问题有经验并有任何想法
【问题讨论】:
-
什么代码导致了这个问题?您尝试同时发出多少个请求?为什么你认为这与 Angular 有关?
-
代码是一个简单的 Angular Post/GET 请求,我们也使用 apollo 客户端,但发起者似乎是问题 一次大约 7 个请求 s2.postimg.org/mvzs9eqp5/Sk_rmklipp.jpg 它可能对 chrome 更重要,但在这种情况下它的角度“引发”了问题
-
你能在stackblitz.com复制吗?
-
应用程序太大,无法上传到 stackblitz。该问题也仅与某些客户有关,而不是全部客户,对于大多数客户来说都是有效的。
-
我怀疑还有很多其他人可以做。
标签: angular google-chrome connection tcp-ip