Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 30231|Jawab: 1

[Sumber] SignalR tidak menggunakan protokol websocket untuk berkomunikasi

[Salin tautan]
Diposting pada 18/04/2019 17.33.48 | | | |
ASP.NET SignalR adalah perpustakaan untuk pengembang ASP.NET yang menyederhanakan proses penambahan fungsionalitas web real-time ke aplikasi mereka. Fitur web real-time adalah fitur di mana kode server dapat mendorong konten ke klien yang terhubung segera setelah tersedia, daripada meminta server menunggu klien meminta data baru.

ASP .NET SignalR adalah pustaka kelas di bawah ASP .NET, yang dapat mewujudkan komunikasi real-time dalam proyek web ASP .NET (yaitu, klien (halaman web) dan sisi server dapat memberi tahu satu sama lain secara real time dan metode panggilan), SignalR memiliki tiga mode transmisi: LongLooping (polling panjang), WebSocket (soket HTML5 WEB), Forever Frame ( koneksi permintaan panjang yang menyembunyikan bingkai), dapat ditentukan secara eksplisit di klien WEB atau secara default (disarankan), jika default diadopsi,SignalR akan secara otomatis memilih metode transmisi yang sesuai berdasarkan lingkungan browser

Karena pemuatan data situs web terlalu lambat, alasannya adalah paket data terlalu besar, dan permintaan jaringan cocok, dan ditemukan bahwa "ws" kosong, dan kemudian ditemukan bahwa SignalR tidak menggunakan protokol websocket.

Ketika saya men-debug secara lokal, saya menemukan bahwa situs web dapat menggunakan protokol WS secara normal, yaitu dapat berkomunikasi secara normal dengan websocket, dan kemudian mengamati perbedaan antara permintaan server dan jaringan lokal, dan menemukan bahwa itu adalah sebagai berikut:



URL:http://ip/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22positionvehiclehub%22%7D%5D&_=1555578162378

Lokal:

{"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}
Server:

{"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}
Beberapa parameter awalnya berbeda dari parameter lokal dan server, dan saya menemukannyaCoba Soket Webparameter, local adalah true, server adalah false.



Melihat informasi, ditemukan bahwa jika SignalR menggunakan protokol WebSocket, kondisi berikut perlu dipenuhi:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 atau Windows 8)
  • Fitur WebSockets diaktifkan di server
  • Dukungan untuk WebSockets browser



Ini, saya menemukan bahwa versi IIS di server adalah 7.5,Protokol WebSocket tidak didukung di IIS 7.5



Tautan referensi:Login hyperlink terlihat.




Mantan:WPF Programmer Rest Digital Clock [dengan kode sumber]
Depan:"Programmer Gila"
Diposting pada 22/04/2019 09.24.01 |
Hal-hal baik Tandai
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com