Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 30231|Απάντηση: 1

[Πηγή] Το SignalR δεν χρησιμοποιεί το πρωτόκολλο websocket για την επικοινωνία

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 18/4/2019 5:33:48 μ.μ. | | | |
Το ASP.NET SignalR είναι μια βιβλιοθήκη για προγραμματιστές ASP.NET που απλοποιεί τη διαδικασία προσθήκης λειτουργικότητας ιστού σε πραγματικό χρόνο στις εφαρμογές τους. Μια δυνατότητα ιστού σε πραγματικό χρόνο είναι μια δυνατότητα όπου ο κώδικας διακομιστή μπορεί να προωθήσει περιεχόμενο σε έναν συνδεδεμένο πελάτη μόλις γίνει διαθέσιμο, αντί να περιμένει ο διακομιστής τον πελάτη να ζητήσει νέα δεδομένα.

Το ASP .NET SignalR είναι μια βιβλιοθήκη κλάσεων κάτω από το ASP .NET, η οποία μπορεί να πραγματοποιήσει επικοινωνία σε πραγματικό χρόνο σε έργα ιστού ASP .NET (δηλαδή, ο πελάτης (ιστοσελίδα) και η πλευρά του διακομιστή μπορούν να ειδοποιούν ο ένας τον άλλον σε πραγματικό χρόνο και μεθόδους κλήσης), το SignalR έχει τρεις τρόπους μετάδοσης: LongLooping (μεγάλη ψηφοφορία), WebSocket (υποδοχή HTML5 WEB), Forever Frame ( μεγάλες συνδέσεις αιτήματος που αποκρύπτουν το πλαίσιο), μπορούν να καθοριστούν ρητά στον πελάτη WEB ή από προεπιλογή (συνιστάται), εάν υιοθετηθεί η προεπιλογή,Το SignalR θα επιλέξει αυτόματα την κατάλληλη μέθοδο μετάδοσης με βάση το περιβάλλον του προγράμματος περιήγησης

Επειδή η φόρτωση δεδομένων ιστότοπου είναι πολύ αργή, ο λόγος είναι ότι το πακέτο δεδομένων είναι πολύ μεγάλο και το αίτημα δικτύου είναι κατάλληλο και διαπιστώνεται ότι το "ws" είναι κενό και, στη συνέχεια, διαπιστώνεται ότι το SignalR δεν χρησιμοποιεί το πρωτόκολλο websocket.

Όταν έκανα εντοπισμό σφαλμάτων τοπικά, διαπίστωσα ότι ο ιστότοπος μπορεί να χρησιμοποιήσει κανονικά το πρωτόκολλο WS, δηλαδή μπορεί να επικοινωνεί κανονικά με websockets και, στη συνέχεια, να παρατηρήσει τη διαφορά μεταξύ αιτημάτων διακομιστή και τοπικού δικτύου και διαπίστωσα ότι έχει ως εξής:



Διεύθυνση URL:http://ip/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22positionvehiclehub%22%7D%5D&_=1555578162378

Τοπικά:

{"Url":"/signalr","ConnectionToken":"iX0gmz3XDJpQ62b6eiWK16Quaf+LFlD5aHw1k2oC6dKPz7naDuFmc0M7+xiR72ZjJDuNnMvfZyZF72qJK/4g6FOKAsY5C0uCfViOBXPRJVMBczOXTyCKcztIcugmcBq8" ,"ConnectionId":"50598ad3-b138-458c-a58d-b4f84d23c0e0","KeepAliveTimeout":20.0,"DisconnectTimeout":30.0,"ConnectionTimeout":110.0,"TryWebSockets":true," ProtocolVersion":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}
Διακομιστές:

{"Url":"/signalr","ConnectionToken":"4JbNUOp5/ju8Fljn29tCsFoTitZXk3XfF3tkuc/OYpaEQPawJHi3U1nTtjcJJzK4mVsOn9nAEECZj7h5732aV7tNJDgsasCon9uQwhqXZC5EAZPrAgASueApAjBCpPpE" ,"ConnectionId":"c46e67b1-4fb4-4345-983f-bf2c391d33e0","KeepAliveTimeout":20.0,"DisconnectTimeout":30.0,"ConnectionTimeout":110.0,"TryWebSockets":false," ProtocolVersion":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}
Ορισμένες παράμετροι είναι αρχικά διαφορετικές από τις τοπικές και τις παραμέτρους διακομιστή και το βρήκαΔοκιμάστε το WebSocketsπαράμετρος, το τοπικό είναι αληθές, ο διακομιστής είναι ψευδής.



Εξετάζοντας τις πληροφορίες, διαπιστώνεται ότι εάν το SignalR χρησιμοποιεί το πρωτόκολλο WebSocket, πρέπει να πληρούνται οι ακόλουθες προϋποθέσεις:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 ή Windows 8)
  • Η δυνατότητα WebSockets είναι ενεργοποιημένη στο διακομιστή
  • Υποστήριξη για WebSockets προγράμματος περιήγησης



Αυτό είναι, βρήκα ότι η έκδοση IIS στον διακομιστή είναι 7.5,Το πρωτόκολλο WebSocket δεν υποστηρίζεται στις υπηρεσίες IIS 7.5



Σύνδεσμοι αναφοράς:Η σύνδεση με υπερσύνδεσμο είναι ορατή.




Προηγούμενος:WPF Programmer Rest Digital Clock [με πηγαίο κώδικα]
Επόμενος:"Τρελός προγραμματιστής"
Δημοσιεύτηκε στις 22/4/2019 9:24:01 π.μ. |
Καλά πράγματα Μαρκ
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com