Szybki start: tworzenie pokoju rozmów przy użyciu ASP.NET i usługi SignalR Service
Usługa Azure SignalR Service jest oparta na usłudze SignalR dla platformy ASP.NET Core 2.1, która nie jest zgodna z ASP.NET SignalR. Usługa Azure SignalR Service ponownie zaimplementowała protokół danych ASP.NET SignalR na podstawie najnowszych technologii ASP.NET Core. Jeśli używasz usługi Azure SignalR Service dla usługi ASP.NET SignalR, niektóre funkcje usługi SignalR ASP.NET nie są już obsługiwane, na przykład usługa Azure SignalR nie odtwarza komunikatów podczas ponownego nawiązywania połączenia przez klienta. Ponadto transport forever frame i JSONP nie są obsługiwane. Niektóre zmiany kodu i właściwa wersja bibliotek zależnych są potrzebne, aby ASP.NET aplikacja SignalR współdziałała z usługą SignalR Service.
Zapoznaj się z dokumentacją różnic wersji, aby uzyskać pełną listę porównań funkcji między ASP.NET SignalR i ASP.NET Core SignalR.
Z tego przewodnika Szybki start dowiesz się, jak rozpocząć pracę z ASP.NET i usługą Azure SignalR Service dla podobnej aplikacji pokoju rozmów.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Ważne
Nieprzetworzone parametry połączenia są wyświetlane tylko w tym artykule w celach demonstracyjnych.
Parametry połączenia zawiera informacje o autoryzacji wymagane przez aplikację w celu uzyskania dostępu do usługi Azure Web PubSub. Klucz dostępu wewnątrz parametry połączenia jest podobny do hasła głównego usługi. W środowiskach produkcyjnych zawsze chroń klucze dostępu. Usługa Azure Key Vault umożliwia bezpieczne zarządzanie kluczami i obracanie ich oraz zabezpieczanie parametry połączenia przy użyciu identyfikatora Entra firmy Microsoft.
Unikaj dystrybuowania kluczy dostępu do innych użytkowników, kodowania ich lub zapisywania ich w dowolnym miejscu w postaci zwykłego tekstu, który jest dostępny dla innych użytkowników. Obracanie kluczy, jeśli uważasz, że mogły one zostać naruszone.
Wymagania wstępne
Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.
Logowanie się do platformy Azure
Zaloguj się w witrynie Azure Portal przy użyciu danych konta Azure.
Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.
W tej sekcji utworzysz podstawowe wystąpienie usługi Azure SignalR do użycia dla aplikacji. Poniższe kroki umożliwiają utworzenie nowego wystąpienia za pomocą witryny Azure Portal, ale można również użyć interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz polecenie az signalr create w dokumentacji interfejsu wiersza polecenia usługi Azure SignalR Service.
- Zaloguj się w witrynie Azure Portal.
- W lewym górnym rogu strony wybierz pozycję + Utwórz zasób.
- Na stronie Tworzenie zasobu w polu tekstowym usługa wyszukiwania s i marketplace wprowadź signalr, a następnie wybierz pozycję SignalR Service z listy.
- Na stronie SignalR Service wybierz pozycję Utwórz.
- Na karcie Podstawy wprowadź podstawowe informacje dotyczące nowego wystąpienia usługi SignalR Service. Wprowadź następujące wartości:
Pole | Sugerowana wartość | opis |
---|---|---|
Subskrypcja | Wybierz swoją subskrypcję | Wybierz subskrypcję, której chcesz użyć, aby utworzyć nowe wystąpienie usługi SignalR Service. |
Grupa zasobów: | Tworzenie grupy zasobów o nazwie SignalRTestResources | Wybierz lub utwórz grupę zasobów dla zasobu usługi SignalR. Warto utworzyć nową grupę zasobów na potrzeby tego samouczka zamiast używać istniejącej grupy zasobów. Aby zwolnić zasoby po ukończeniu samouczka, usuń grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszystkich zasobów należących do grupy. Tej akcji nie można cofnąć. Przed usunięciem grupy zasobów upewnij się, że nie zawiera ona zasobów, które chcesz zachować. Więcej informacji można znaleźć w temacie Using resource groups to manage your Azure resources (Używanie grup zasobów do zarządzania zasobami platformy Azure). |
Nazwa zasobu | testsignalr | Podaj unikatową nazwę zasobu do użycia dla zasobu usługi SignalR. Jeśli testsignalr jest już wykonany w Twoim regionie, dodaj cyfrę lub znak, dopóki nazwa nie będzie unikatowa. Nazwa musi być ciągiem od 1 do 63 znaków i zawierać tylko cyfry, litery i znak łącznika ( - ). Nazwa nie może zaczynać ani kończyć się znakiem łącznika, a kolejne znaki łącznika są nieprawidłowe. |
Region | Wybierz region | Wybierz odpowiedni region dla nowego wystąpienia usługi SignalR Service. Usługa Azure SignalR Service nie jest obecnie dostępna we wszystkich regionach. Aby uzyskać więcej informacji, zobacz Dostępność regionów usługi Azure SignalR Service |
Warstwa cenowa | Wybierz pozycję Zmień , a następnie wybierz pozycję Bezpłatna (tylko tworzenie i testowanie). Wybierz pozycję Wybierz , aby potwierdzić wybór warstwy cenowej. | Usługa Azure SignalR Service ma trzy warstwy cenowe: Bezpłatna, Standardowa i Premium. Samouczki korzystają z warstwy Bezpłatna, chyba że określono inaczej w wymaganiach wstępnych. Aby uzyskać więcej informacji o różnicach funkcjonalności między warstwami i cenami, zobacz Cennik usługi Azure SignalR Service |
Tryb usługi | Wybieranie odpowiedniego trybu usługi | Użyj wartości Domyślnej podczas hostowania logiki centrum SignalR w aplikacjach internetowych i używania usługi SignalR jako serwera proxy. Używaj technologii bezserwerowych , takich jak Azure Functions, do hostowania logiki centrum SignalR. Tryb klasyczny jest przeznaczony tylko dla zgodności z poprzednimi wersjami i nie jest zalecany do użycia. Aby uzyskać więcej informacji, zobacz Tryb usługi w usłudze Azure SignalR Service. |
Nie musisz zmieniać ustawień na kartach Sieć i tagi samouczków usługi SignalR.
- Wybierz przycisk Przejrzyj i utwórz w dolnej części karty Podstawy.
- Na karcie Przeglądanie i tworzenie przejrzyj wartości, a następnie wybierz pozycję Utwórz. Ukończenie wdrożenia zajmuje kilka chwil.
- Po zakończeniu wdrażania wybierz przycisk Przejdź do zasobu .
- Na stronie zasobu usługi SignalR wybierz pozycję Klucze z menu po lewej stronie w obszarze Ustawienia.
- Skopiuj parametry połączenia dla klucza podstawowego. Ta parametry połączenia jest potrzebna do skonfigurowania aplikacji w dalszej części tego samouczka.
Tryb bezserwerowy nie jest obsługiwany w przypadku aplikacji ASP.NET SignalR. Zawsze używaj wartości domyślnej lub klasycznej dla wystąpienia usługi Azure SignalR Service.
Możesz również utworzyć zasoby platformy Azure używane w tym przewodniku Szybki start za pomocą polecenia Create a SignalR Service script (Tworzenie skryptu usługi SignalR Service).
Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.
Klonowanie przykładowej aplikacji
W czasie, gdy usługa jest wdrażana, przejdźmy do pracy z kodem. Sklonuj przykładową aplikację z witryny GitHub, ustaw parametry połączenia usługi SignalR Service i uruchom aplikację lokalnie.
Otwórz okno terminala usługi Git. Przejdź do folderu, w którym chcesz sklonować przykładowy projekt.
Uruchom następujące polecenie w celu sklonowania przykładowego repozytorium. To polecenie tworzy kopię aplikacji przykładowej na komputerze.
git clone https://github.com/aspnet/AzureSignalR-samples.git
Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.
Konfigurowanie i uruchamianie aplikacji internetowej Pokoju rozmów
Uruchom program Visual Studio i otwórz rozwiązanie w folderze aspnet-samples/ChatRoom/ sklonowanego repozytorium.
W przeglądarce, w której jest otwierana witryna Azure Portal, znajdź i wybierz utworzone wystąpienie.
Wybierz pozycję Klucze, aby wyświetlić parametry połączenia dla wystąpienia usługi SignalR Service.
Zaznacz i skopiuj podstawowe parametry połączenia.
Teraz ustaw parametry połączenia w pliku web.config.
Nieprzetworzone parametry połączenia są wyświetlane tylko w tym artykule w celach demonstracyjnych. W środowiskach produkcyjnych zawsze chroń klucze dostępu. Usługa Azure Key Vault umożliwia bezpieczne zarządzanie kluczami i obracanie ich oraz zabezpieczanie parametry połączenia przy użyciu identyfikatora Entra firmy Microsoft.
<configuration> <connectionStrings> <add name="Azure:SignalR:ConnectionString" connectionString="<Replace By Your Connection String>"/> </connectionStrings> ... </configuration>
W Startup.cs zamiast wywoływać
MapSignalR()
metodę , należy wywołaćMapAzureSignalR({YourApplicationName})
i przekazać parametry połączenia, aby aplikacja łączyła się z usługą zamiast hostować usługę SignalR samodzielnie. Zastąp{YourApplicationName}
ciąg nazwą aplikacji. Ta nazwa jest unikatową nazwą, aby odróżnić tę aplikację od innych aplikacji. Możesz użyćthis.GetType().FullName
jako wartości.public void Configuration(IAppBuilder app) { // Any connection or hub wire up and configuration should go here app.MapAzureSignalR(this.GetType().FullName); }
Przed użyciem tych interfejsów API należy również odwołać się do zestawu SDK usługi. Otwórz narzędzia | Menedżer pakietów NuGet | Menedżer pakietów Konsola i uruchom polecenie:
Install-Package Microsoft.Azure.SignalR.AspNet
Poza tymi zmianami wszystkie inne elementy pozostają takie same, nadal możesz użyć interfejsu centrum, który już znasz do pisania logiki biznesowej.
Uwaga
W implementacji punkt końcowy
/signalr/negotiate
jest uwidaczniony na potrzeby negocjacji przez zestaw SDK usługi Azure SignalR Service. Zwróci ona specjalną odpowiedź negocjacyjną, gdy klienci próbują nawiązać połączenie i przekierować klientów do punktu końcowego usługi zdefiniowanego w parametry połączenia.Naciśnij F5 , aby uruchomić projekt w trybie debugowania. Możesz zobaczyć, że aplikacja działa lokalnie. Zamiast hostować środowisko uruchomieniowe usługi SignalR przez samą aplikację, łączy się teraz z usługą Azure SignalR Service.
Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.
Czyszczenie zasobów
Jeśli nie zamierzasz w przyszłości korzystać z tej aplikacji i nie chcesz, aby zostały naliczone jakiekolwiek opłaty, wykonaj następujące czynności w celu usunięcia wszystkich zasobów w ramach tego przewodnika Szybki start:
W witrynie Azure Portal wybierz grupy zasobów daleko po lewej stronie, a następnie wybierz utworzoną grupę zasobów. Możesz też użyć pola wyszukiwania, aby odnaleźć grupę zasobów po nazwie.
W otworzonym oknie wybierz grupę zasobów, a następnie kliknij pozycję Usuń grupę zasobów.
W nowym oknie wpisz nazwę grupy zasobów, która ma zostać usunięta, a następnie kliknij pozycję Usuń.
Ważne
Usunięcie grupy zasobów jest nieodwracalne i grupa zasobów oraz wszystkie zawarte w niej zasoby zostaną trwale usunięte. Uważaj, aby nie usunąć przypadkowo niewłaściwych zasobów lub grupy zasobów. Jeśli zasoby do hostowania tego przykładu zostały utworzone wewnątrz istniejącej grupy zasobów zawierającej zasoby, które chcesz zachować, możesz usunąć każdy zasób oddzielnie z odpowiadającego mu bloku zamiast usuwać całą grupę zasobów.
Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
W polu tekstowym Filtruj według nazwy... wpisz nazwę grupy zasobów. W instrukcjach dla tego przewodnika Szybki start używana była grupa zasobów o nazwie SignalRTestResources. Dla grupy zasobów na liście wyników kliknij pozycję ..., a następnie kliknij pozycję Usuń grupę zasobów.
Po krótkim czasie grupa zasobów i wszystkie zawarte w niej zasoby zostaną usunięte.
Masz problemy? Wypróbuj przewodnik rozwiązywania problemów lub daj nam znać.
Następne kroki
W tym przewodniku Szybki start utworzono nowy zasób usługi Azure SignalR Service i użyto go z aplikacją internetową ASP.NET. Następnie dowiesz się, jak opracowywać aplikacje w czasie rzeczywistym przy użyciu usługi Azure SignalR Service z platformą ASP.NET Core.