Chrome bị treo sau khi truyền một lượng dữ liệu nhất định - đang chờ ổ cắm khả dụng


101

Tôi có một trò chơi trên trình duyệt và gần đây tôi đã bắt đầu thêm âm thanh vào trò chơi.

Chrome không tải toàn bộ trang và bị kẹt "91 requests | 8.1 MB transferred"và không tải thêm bất kỳ nội dung nào; và nó thậm chí còn phá vỡ trang web trong tất cả các tab khác, nói Waiting for available socket.

Sau 5 phút (chính xác), dữ liệu sẽ được tải.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Điều này không xảy ra trên bất kỳ trình duyệt nào khác.

Xóa một tệp MP3 (tệp mới nhất được thêm vào) đã khắc phục được sự cố, vậy có lẽ đó là vấn đề giới hạn dữ liệu?


1
Bạn đã nộp hoặc tìm thấy một báo cáo lỗi cho việc này? Chúng tôi đang nhìn thấy chính xác cùng một hành vi (cần phải kiểm tra xem số lượng yêu cầu hoặc chuyển byte phù hợp nhưng nếu không hành vi và diêm lỗi chính xác)
Jan

1
Đây có vẻ như là một sự cố đã biết - hãy xem code.google.com/p/chromium/issues/detail?id=324653 Hãy xem code.google.com/p/chromium/issues/detail?id=324653 chính xác điều gì đang xảy ra. Nhưng nếu bạn đang đạt đến giới hạn số lượng ổ cắm đã mở thì trên thực tế, ngay cả các trình duyệt khác cũng có giới hạn về số lượng kết nối với một tên miền. Bạn có hai tùy chọn - hoặc đảm bảo rằng bạn chỉ có một vài yêu cầu đồng thời đang hoạt động (tuần tự hóa chúng; không phân loại); hoặc chia máy chủ của bạn thành các miền phụ và đưa ra các yêu cầu cho các miền phụ khác nhau.
Ngày

5
Tùy trường hợp, nhưng nếu gần đây bạn đã khởi động lại Chrome và có nhiều tab đang mở trên một máy chủ yêu cầu xác thực HTTP cơ bản, thì bạn có thể gặp các lỗi này vì một trong các tab nền của bạn đã xuất hiện hộp thoại xác thực. Kiểm tra tất cả các tab đang mở khác cho trang web được đề cập, đăng nhập nếu cần và xem sự cố đã được giải quyết chưa.
Nathaniel Heinrichs

Có ai biết đây là tiện ích mở rộng nào để theo dõi dữ liệu này mà anh ấy đã cung cấp trong ảnh chụp màn hình không?
AlexioVay

2
@NathanielHeinrichs +1 cho "trường hợp thích hợp" đã làm tôi khó chịu trong 2 tuần qua. Đó chính xác là những gì đang xảy ra với tôi, và bây giờ tôi biết tại sao! Cảm ơn.
Marcus

Câu trả lời:


68

Có vẻ như bạn đang đạt đến giới hạn kết nối trên mỗi máy chủ. Tôi thấy bạn đang tải rất nhiều tệp tĩnh và lời khuyên của tôi là hãy tách chúng trên các tên miền phụ và phân phát chúng trực tiếp bằng Nginx chẳng hạn.

  • Tạo tên miền phụ có tên img.yoursite.com và tải tất cả hình ảnh của bạn từ đó.

  • Tạo một miền phụ có tên scripts.yourdomain.com và tải tất cả các tệp JS và CSS của bạn từ đó.

  • Tạo một miền phụ có tên là sound.yoursite.com và tải tất cả các tệp MP3 của bạn từ đó ... vv.

Nginx có các tùy chọn tuyệt vời để phục vụ trực tiếp các tệp tĩnh và quản lý bộ nhớ đệm tệp tĩnh.


11
Điều này không thay đổi bất cứ điều gì. Chỉ cần đặt một số miền giả mạo vào tệp máy chủ của bạn và sử dụng chúng thay vì máy chủ cục bộ.
Predte4a

Không phải là một lựa chọn cho tôi. Tôi đang cố gắng phân phát video từ máy chủ tại nhà của mình qua web (khi tôi đang làm việc).
Sridhar Sarnobat

4
Trong trường hợp khi httpd (tức là apache) có thể xử lý hàng trăm sim. kết nối và chỉ Crome đang hạn chế chúng, đây không phải là một giải pháp. Trong trường hợp của tôi, đó là 6 ổ cắm cho mỗi cấu hình, vì vậy tôi có thể mở thêm 6 ổ cắm nữa trong hồ sơ ẩn danh, v.v. Đây là giải pháp stackoverflow.com/a/29639535/904846 có thể được chấp nhận như một câu trả lời tốt nhất.
dmnc

145

Giải trình:

Sự cố này xảy ra do Chrome cho phép mở tối đa 6 kết nối theo mặc định. Vì vậy, nếu bạn đang phát trực tuyến nhiều tệp phương tiện đồng thời từ 6 <video>hoặc <audio>thẻ, kết nối thứ 7 (ví dụ: một hình ảnh) sẽ chỉ bị treo cho đến khi một trong các ổ cắm mở ra. Thông thường, một kết nối đang mở sẽ đóng sau 5 phút không hoạt động và đó là lý do tại sao bạn thấy .pngs cuối cùng cũng tải tại thời điểm đó.

Giải pháp 1:

Bạn có thể tránh điều này bằng cách giảm thiểu số lượng thẻ phương tiện giữ kết nối mở. Và nếu bạn cần có nhiều hơn 6, hãy đảm bảo rằng bạn tải chúng lần cuối hoặc chúng không có các thuộc tính như preload="auto".

Giải pháp 2:

Nếu bạn đang cố gắng sử dụng nhiều hiệu ứng âm thanh cho một trò chơi trên web, bạn có thể sử dụng API âm thanh web . Hoặc để đơn giản hóa mọi thứ, chỉ cần sử dụng một thư viện như SoundJS , đây là một công cụ tuyệt vời để phát một lượng lớn hiệu ứng âm thanh / bản nhạc cùng một lúc.

Giải pháp 3: Buộc mở ổ cắm (Không khuyến khích)

Nếu phải, bạn có thể buộc mở các ổ cắm trong trình duyệt của mình (Chỉ trong Chrome):

  1. Đi tới thanh địa chỉ và nhập chrome://net-internals.
  2. Chọn Socketstừ menu.
  3. Bấm vào Flush socket poolsnút.

Giải pháp này không được khuyến khích vì bạn không nên mong đợi khách truy cập làm theo các hướng dẫn này để có thể xem trang web của bạn.


13
Mặc dù câu trả lời được chấp nhận cung cấp thông tin tốt, nhưng đây là câu trả lời tốt nhất.
taco

1
Chỉ cần cài đặt Neo4J 3.0.4 và mở localhost: 7474 nó nói chờ đợi cho ổ cắm sẵn, cố gắng tuôn ra vẫn không làm việc và trong hồ bơi danh sách nói 6 hoạt động và 2 cấp phát cho trang web này
Adeem

Xả nước hồ ổ cắm không hoạt động đối với tôi hoặc là (tôi đang chơi miếng nhỏ một số HTML5 <video>yếu tố và đánh giới hạn.
Sridhar Sarnobat

Trong trường hợp của tôi, có nhiều tab đang mở và thăm dò tới máy chủ, đã đóng tất cả các tab và bây giờ thì tốt rồi.
igaurav

Ứng dụng cũ của chúng tôi đã yêu cầu hình ảnh (phóng to / thu nhỏ.png, v.v.) từ một máy chủ công cộng (máy chủ này hẳn đã ngừng được hỗ trợ - dẫn đến nhiều báo cáo lỗi). Tất cả các yêu cầu đến máy chủ đó đều bị kẹt ở dạng "Đang chờ xử lý" trong Chrome và nó sẽ chỉ gửi lại mã trạng thái HTTP 502 sau khoảng hai phút. Điều này khiến ứng dụng bị treo và không thể yêu cầu hình ảnh từ máy chủ của chính chúng tôi vì nó bị tắc khi yêu cầu những hình ảnh này. Câu trả lời tuyệt vời - đã giúp tôi theo dõi điều này!
Francis Dean

13

Thông điệp:

Đang đợi ổ cắm khả dụng ...

được hiển thị, vì bạn đã đạt đến giới hạn ssl_socket_pool cho mỗi Máy chủ, Proxy hoặc Nhóm.

Dưới đây là số lượng kết nối HTTP tối đa mà bạn có thể thực hiện với trình duyệt Chrome:

  • Số lượng kết nối tối đa cho mỗi proxy là 32 kết nối. Điều này có thể được thay đổi trong Danh sách chính sách .
  • Tối đa mỗi Máy chủ: 6 kết nối.

    Điều này có thể được mã hóa cứng trong mã nguồn của trình duyệt web, vì vậy bạn không thể thay đổi nó.

  • Tổng số 256 kết nối HTTP được gộp chung cho mỗi trình duyệt.

Nguồn: Mạng doanh nghiệp dành cho thiết bị Chrome

Các giới hạn trên có thể được kiểm tra hoặc xóa tại chrome://net-internals/#sockets(hoặc trong thời gian thực tại chrome://net-internals/#events&q=type:SOCKET%20is:active).


Sự cố của bạn với âm thanh có thể liên quan đến lỗi Chrome 162627 trong đó âm thanh HTML5 không tải được và nó đạt tối đa các kết nối đồng thời trên mỗi máy chủ: proxy. Đây vẫn là vấn đề đang hoạt động tại thời điểm viết bài (2016).

Vấn đề cũ hơn nhiều liên quan đến yêu cầu video HTML5 vẫn đang chờ xử lý , sau đó có thể liên quan đến Vấn đề # 234779 đã được khắc phục năm 2014. Và liên quan đến SPDY có thể tìm thấy trong Vấn đề 324653: Vấn đề SPDY: đang chờ các ổ cắm có sẵn , nhưng điều này đã được khắc phục vào năm 2014, vì vậy có lẽ nó không liên quan.

Bạn có thể tìm thấy sự cố liên quan khác hiện được đánh dấu là trùng lặp trong Sự cố 401845: Không thể tải trước siêu dữ liệu âm thanh. Chỉ tải 6 trong số 10+ có liên quan đến sự cố với mã trình phát đa phương tiện, khiến một loạt các yêu cầu tạm dừng bị treo lơ lửng.


Điều này cũng có thể liên quan đến một số phần mềm quảng cáo Chrome hoặc tiện ích chống vi-rút sử dụng ổ cắm của bạn trong nền (như Sophos hoặc Kaspersky ), vì vậy hãy kiểm tra Hoạt động mạng trong DevTools .


1
Làm thế nào tôi có thể thay đổi 6 mỗi máy chủ tới 8 trên mỗi máy chủ vì nó dường như một số phần mềm tôi đang sử dụng nhu cầu 8 kết quả 2 đợt nghỉ trong khi chờ và trang web không bao giờ được nạp
Adeem

@Adeem Tôi không nghĩ bạn có thể thay đổi điều đó, tôi tin rằng nó được mã hóa cứng trong mã nguồn. Bạn có thể báo cáo vấn đề đó bằng cách mô tả kịch bản cụ thể của bạn.
kenorb

1
chrome: // net-internals / # events & q = type: SOCKET% 20is: liên kết hoạt động không được cập nhật trong Chrome mới nhất
pyrytakala

6

giải pháp đơn giản và đúng là tắt tải trước tệp âm thanh và video của bạn khỏi cài đặt và kiểm tra lại trang của bạn, vấn đề chờ ổ cắm có sẵn của bạn sẽ được giải quyết ...

nếu bạn sử dụng jplayer thì hãy thay thế tải trước: "siêu dữ liệu" thành tải trước: "không" từ jplayer Tệp JS ...

tải trước: "siêu dữ liệu" là giá trị mặc định phát tệp âm thanh / video của bạn khi tải trang, đó là lý do tại sao google chrome hiển thị lỗi "đang chờ ổ cắm khả dụng"


0

Suy nghĩ đầu tiên của chúng tôi là trang web bị lỗi hoặc tương tự, nhưng sự thật là đây không phải là vấn đề hay khuyết tật. Nó cũng không phải là một vấn đề bởi vì một kết nối đơn giản khi được kiểm tra dưới Firefox, Opera hoặc các dịch vụ Explorer mở như bình thường.

Lỗi trong Chrome hiển thị một dấu hiệu cho biết "Trang web này không khả dụng" và giải thích rõ với chú thích "Lỗi 15 (net :: ERR_SOCKET_NOT_CONNECTED): Lỗi không xác định". Lỗi khá bình thường trong Google Chrome, chính xác hơn là trong các bản cập nhật của nó và cách giải quyết là khởi động lại máy tính.

Vì các giải pháp từng phần không nhiều nên chúng tôi cung cấp một hướng dẫn để bạn giải quyết lỗi trong vòng chưa đầy một phút. Để tránh sự cố này và đảm bảo rằng các dịch vụ đang mở bình thường trong Google Chrome, hãy chèn thông tin sau vào thanh địa chỉ: chrome: // net-internals (sau đó nhập "Enter"). Sau đó, họ phải đi đến "Socket" ở menu bên trái và chọn "Flush Socket Pools" (xem ảnh chụp màn hình sau để hướng dẫn http://www.fixotip.com/how-to-fix-error-waiting-for -available-sockets-in-google-chrome / ) Điều này đã được giải quyết vấn đề và sẽ không còn gặp sự cố khi truy cập Gmail, Google hoặc bất kỳ dịch vụ nào của gã khổng lồ Mountain View. Tôi hy vọng bạn thấy nó hữu ích và chia sẻ hướng dẫn với những người họ cần hoặc các mạng xã hội: Facebook, Twitter hoặc Google+.


0

Chrome là trình duyệt dựa trên Chromium và các trình duyệt dựa trên Chromium chỉ cho phép tối đa 6 kết nối ổ cắm mở cùng một lúc, khi kết nối thứ 7 khởi động, nó sẽ chỉ dừng lại và chờ một trong 6 kết nối đang chạy dừng lại và sau đó nó sẽ bắt đầu chạy. Do đó, mã lỗi 'đang chờ các ổ cắm khả dụng' , mã thứ 7 sẽ đợi một trong 6 ổ cắm đó khả dụng và sau đó nó sẽ bắt đầu chạy.

Bạn có thể

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.