WebSocket Ping TCP Keepalive-ის წინააღმდეგ პროქსის გავლით
აირჩიეთ WebSocket პირის სიცოცხლისუნარიანობის შემოწმება იმის ნაცვლად, რომ ცოცხალი TCP სოკეტი მიიჩნიოთ იმის მტკიცებულებად, რომ აპლიკაციის გზა პასუხობს.
ცოცხალი TCP სოკეტი, პასუხისმგებელი WebSocket პირი და აპლიკაციის სასარგებლო წინსვლა სამი განსხვავებული დაკვირვებაა:
| მტკიცებულება | რას ადგენს |
|---|---|
| სიცოცხლისუნარიანობა TCP დონეზე | შემოწმებული ტრანსპორტის გზა ამ დონეზე პასუხობს |
| შესაბამისი WebSocket Pong | პირმა უპასუხა ამ მართვის ჩარჩოს |
| აპლიკაციის დადასტურება | აპლიკაციამ დაადასტურა ოპერაცია საკუთარი პროტოკოლით |
წინა პროქსი ჩვეულებრივ ცალკე კავშირებს ინახავს კლიენტისა და დანიშნულების მიმართულებით. კლიენტის TCP პირი პროქსია, ხოლო დამყარებული გვირაბის შიგნით Ping WebSocket-ის ბოლო წერტილამდე მიდის.
შესაბამისი Pong
პროტოკოლი მოითხოვს, რომ პასუხისმგებელ Pong-ს გადაჰქონდეს Ping-ის აპლიკაციის მონაცემები. გამოიყენეთ ეს შესაბამისობა მოლოდინში მყოფი შემოწმების ამოსაცნობად. მოუთხოვნელი Pong დასაშვებია, მაგრამ დადასტურებას არ ითხოვს; ყოველი მონაცემთა შეტყობინების შემდეგ მისი გაგზავნა სხვა მტკიცებულებას იძლევა.
უპირატესობა მიანიჭეთ ბიბლიოთეკის მხარდაჭერილ გულისცემის მექანიზმს. ბრაუზერის JavaScript-ს სამაგიეროდ სჭირდება აპლიკაციის დონის გულისცემის ხელშეკრულება. შეარჩიეთ ინტერვალები და წარუმატებლობის ზღურბლები დატვირთვისა და ქსელური პოლიტიკის მიხედვით. განრიგის პაუზებმა ან გადატვირთულმა მოვლენების ციკლმა შეიძლება გამოტოვოს აგრესიული ზღურბლი ქსელის გაუმართაობის დაუმტკიცებლად.
შეინარჩუნეთ მიმღები მუშაობაში
კლიენტს სჭირდება უწყვეტი შესვლა-გამოსვლა მართვის ჩარჩოების მისაღებად და დასამუშავებლად. ამ მექანიზმის დაბლოკვამ შეიძლება ლოკალური ნაკლებობა შეწყვეტად წარმოაჩინოს.
Ping ქმნის გვირაბის ტრაფიკს, მაგრამ ყოველი შუამავალი თავად წყვეტს, რა აკმაყოფილებს მის უქმობის პოლიტიკას. არც ერთი გულისცემა არ იძლევა კავშირის სიცოცხლის აბსოლუტური ზღვრისგან დაცვის გარანტიას.
პირმა შეიძლება უპასუხოს Ping-ს მაშინაც, როცა მისი აპლიკაცია განახლებების გამომუშავებას წყვეტს, და წყნარი გამოწერა შეიძლება ჯანმრთელი იყოს. როცა ორივე მნიშვნელოვანია, ცალ-ცალკე თვალყური ადევნეთ ბოლო სწორ Pong-ს და მნიშვნელოვან აპლიკაციის მოვლენას. წარუმატებლობისას შეინარჩუნეთ მარშრუტი, გასული დროები და მოლოდინში მყოფი შემოწმება, შემდეგ დახურეთ ან აღადგინეთ მხარდაჭერილი სიცოცხლის ციკლით.