Hızlı Başlangıç: Konsol uygulamasından gerçek zamanlı iletileri yayınQuickstart: Broadcast real-time messages from console app

Azure SignalR hizmeti, yayıncılık gibi sunucudan istemciye doğrudan iletişim senaryolarını desteklemek için REST API’sini sağlar.Azure SignalR Service provides REST API to support server to client communication scenarios, such as broadcasting. REST API çağrısı yapabilen herhangi bir programlama dilini seçebilirsiniz.You can choose any programming language that can make REST API call. Bağlı tüm istemcilere, adına göre belirli bir istemciye veya bir istemci grubuna iletiler gönderebilirsiniz.You can post messages to all connected clients, a specific client by name, or a group of clients.

Bu hızlı başlangıçta C# dilinde bir komut satırı uygulamasından bağlı istemci uygulamalarına nasıl ileti gönderebileceğinizi öğreneceksiniz.In this quickstart, you will learn how to send messages from a command-line app to connected client apps in C#.

ÖnkoşullarPrerequisites

Bu hızlı başlangıç; macOS, Windows veya Linux üzerinde çalıştırılabilir.This quickstart can be run on macOS, Windows, or Linux.

Azure aboneliğinizyoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Azure'da oturum açmaSign in to Azure

Azure hesabınızla Azure portalında https://portal.azure.com/ sayfasında oturum açın.Sign in to the Azure portal at https://portal.azure.com/ with your Azure account.

Azure SignalR Hizmeti örneği oluşturmaCreate an Azure SignalR Service instance

Uygulamanız Azure’da bir SignalR hizmeti örneğine bağlanır.Your application will connect to a SignalR Service instance in Azure.

  1. Azure portalın sol üst köşesinde bulunan Yeni düğmesini seçin.Select the New button found on the upper left-hand corner of the Azure portal. Yeni ekranda arama kutusuna SignalR hizmeti yazın ve Enter tuşuna basın.In the New screen, type SignalR Service in the search box and press enter.

    SignalR Hizmetini Arama

  2. Arama sonuçlarından SignalR Hizmeti’ni seçtikten sonra Oluştur’u seçin.Select SignalR Service from the search results, then select Create.

  3. Aşağıdaki ayarları girin.Enter the following settings.

    AyarSetting Önerilen değerSuggested value AçıklamaDescription
    Kaynak adıResource name Genel olarak benzersiz bir adGlobally unique name Yeni SignalR Hizmeti örneğinizi tanımlayan ad.Name that identifies your new SignalR Service instance. Geçerli karakterler: a-z, 0-9, ve -.Valid characters are a-z, 0-9, and -.
    AbonelikSubscription AboneliğinizYour subscription Yeni SignalR Hizmeti örneğinin oluşturulacağı abonelik.The subscription under which this new SignalR Service instance is created.
    Kaynak GrubuResource Group myResourceGroupmyResourceGroup SignalR Hizmeti örneğinizin oluşturulacağı yeni kaynak grubunun adı.Name for the new resource group in which to create your SignalR Service instance.
    LocationLocation Batı ABDWest US Size yakın bir bölge seçin.Choose a region near you.
    Fiyatlandırma katmanıPricing tier BoşFree Azure SignalR Hizmetini ücretsiz deneyin.Try Azure SignalR Service for free.
    Birim sayısıUnit count Geçerli değilNot applicable Birim sayısı, SignalR Hizmeti örneğinizin kaç bağlantı kabul edebileceğini belirtir.Unit count specifies how many connections your SignalR Service instance can accept. Bu yalnızca Standart katmanda yapılandırılabilir.It is only configurable in the Standard tier.
    Hizmet moduService mode SunucusuzServerless Azure Işlevleri veya REST API kullanmak için.For use with Azure Functions or REST API.

    SignalR Hizmeti Oluşturma

  4. SignalR Hizmeti örneğini dağıtmaya başlamak için Oluştur’u seçin.Select Create to start deploying the SignalR Service instance.

  5. Örnek dağıtıldıktan sonra portalda açın ve ayarlar sayfasını bulun.After the instance is deployed, open it in the portal and locate its Settings page. Azure SignalR hizmetini Azure Işlevleri bağlama veya REST API aracılığıyla kullanıyorsanız, hizmet modu ayarını sunucusuz olarak değiştirin.Change the Service Mode setting to Serverless only if you are using Azure SignalR Service through Azure Functions binding or REST API. Aksi halde Klasik veya varsayılan olarak bırakın.Leave it in Classic or Default otherwise.

Örnek uygulamayı kopyalamaClone the sample application

Hizmet dağıtılırken kodu hazırlamaya geçiş yapalım.While the service is deploying, let's switch to prepare the code. GitHub'dan örnek uygulamayı kopyalayın, SignalR Hizmetinin bağlantı dizesini ayarlayın ve uygulamayı yerel olarak çalıştırın.Clone the sample app from GitHub, set the SignalR Service connection string, and run the application locally.

  1. Bir git terminal penceresi açın.Open a git terminal window. Örnek projeyi kopyalamak istediğiniz klasöre gidin.Change to a folder where you want to clone the sample project.

  2. Örnek depoyu kopyalamak için aşağıdaki komutu çalıştırın.Run the following command to clone the sample repository. Bu komut bilgisayarınızda örnek uygulamanın bir kopyasını oluşturur.This command creates a copy of the sample app on your computer.

    git clone https://github.com/aspnet/AzureSignalR-samples.git
    

Örneği derleme ve çalıştırmaBuild and run the sample

Bu örnek, Azure SignalR Hizmetinin kullanımını gösteren bir konsol uygulamasıdır.This sample is a console app showing the use of Azure SignalR Service. İki mod sunar:It provides two modes:

  • Sunucu modu: Azure SignalR Hizmetinin REST API'sini çağırmak için basit komutlar kullanın.Server Mode: use simple commands to call Azure SignalR Service REST API.
  • İstemci modu: Azure SignalR Hizmetine bağlanarak sunucudan ileti alın.Client Mode: connect to Azure SignalR Service and receive messages from server.

Ayrıca Azure SignalR Hizmeti ile kimlik doğrulaması için nasıl bir erişim belirteci oluşturacağınızı da öğrenebilirsiniz.Also you can find how to generate an access token to authenticate with Azure SignalR Service.

Yürütülebilir dosyayı derlemeBuild the executable file

Örnek olarak macOS osx.10.13-x64 kullanıyoruz.We use macOS osx.10.13-x64 as example. Nasıl diğer platformlar için derleyeceğiniz hakkında başvuru belgeleri bulabilirsiniz.You can find reference on how to build on other platforms.

cd AzureSignalR-samples/samples/Serverless/

dotnet publish -c Release -r osx.10.13-x64

İstemci başlatmaStart a client

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless client <ClientName> -c "<ConnectionString>" -h <HubName>

Sunucu başlatmaStart a server

cd bin/Release/netcoreapp2.1/osx.10.13-x64/

Serverless server -c "<ConnectionString>" -h <HubName>

Örneği yayımlamadan çalıştırmaRun the sample without publishing

Bir sunucu veya istemci başlatmak için aşağıdaki komutu da çalıştırabilirsinizYou can also run the command below to start a server or client

# Start a server
dotnet run -- server -c "<ConnectionString>" -h <HubName>

# Start a client
dotnet run -- client <ClientName> -c "<ConnectionString>" -h <HubName>

Bağlantı dizesini belirtmek için kullanıcı gizli dizileri kullanmaUse user-secrets to specify Connection String

dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" öğesini örneğin kök dizininde çalıştırabilirsiniz.You can run dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" in the root directory of the sample. Bundan sonra -c "<ConnectionString>" seçeneğine ihtiyacınız kalmaz.After that, you don't need the option -c "<ConnectionString>" anymore.

KullanımUsage

Sunucu başlatıldıktan sonra ileti göndermek için komutu kullanın:After the server started, use the command to send message:

send user <User Id>
send users <User List>
send group <Group Name>
send groups <Group List>
broadcast

Farklı istemci adları ile birden çok istemci başlatabilirsiniz.You can start multiple clients with different client names.

Üçüncü taraf hizmetlerle tümleştirme Integration with third-party services

Azure SignalR hizmeti, üçüncü taraf hizmetlerin sistemle tümleştirilmesini sağlar.The Azure SignalR service allows third-party services to integrate with the system.

Teknik Özellikleri tanımıDefinition of technical specifications

Aşağıdaki tabloda, desteklenen tüm REST API sürümleri gösterilmektedir.The following table shows all the versions of the REST APIs supported to date. Belirli bir sürüme ait tanım dosyasını da bulabilirsinizYou can also find the definition file for each specific version

VersionVersion API DurumuAPI State KapıDoor ÖzelSpecific
1.0-preview KullanılabilirAvailable 50025002 SwaggerSwagger
1.0 KullanılabilirAvailable StandartStandard SwaggerSwagger

Her sürüm için kullanılabilir API'lerin listesi aşağıda verilmiştir.The list of available APIs for each specific version is available in the following list.

APIAPI 1.0-preview 1.0
Tümüne yayınlaBroadcast to all
Gruba yayınlaBroadcast to a group
Bazı gruplara yayınBroadcast to some groups (Kullanım dışı) (Deprecated) N / A
Belirli kullanıcılara gönderSend to specific users
Bazı kullanıcılara gönderSend to some users (Kullanım dışı) (Deprecated) N / A
Gruba kullanıcı eklemeAdding a user to a group N / A
Gruptan kullanıcı kaldırmaRemoving a user from a group N / A

Herkese yayınlamaBroadcast to everyone

VersionVersion API HTTP YöntemiAPI HTTP Method İstek URL'siRequest URL İstek gövdesiRequest body
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name> Yukarıdakiyle aynıSame as above

Gruba yayınlaBroadcast to a group

VersionVersion API HTTP YöntemiAPI HTTP Method İstek URL'siRequest URL İstek gövdesiRequest body
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/group/<group-name> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name> Yukarıdakiyle aynıSame as above

Belirli kullanıcılara göndermeSending to specific users

VersionVersion API HTTP YöntemiAPI HTTP Method İstek URL'siRequest URL İstek gövdesiRequest body
1.0-preview POST https://<instance-name>.service.signalr.net:5002/api/v1-preview/hub/<hub-name>/user/<user-id> {"target": "<method-name>", "arguments": [...]}
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id> Yukarıdakiyle aynıSame as above

Gruba kullanıcı eklemeAdding a user to a group

VersionVersion API HTTP YöntemiAPI HTTP Method İstek URL'siRequest URL
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<userid>

Gruptan kullanıcı kaldırmaRemoving a user from a group

VersionVersion API HTTP YöntemiAPI HTTP Method İstek URL'siRequest URL
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<userid>

Kaynakları temizlemeClean up resources

Bu uygulamayı kullanmaya devam etmeyecekseniz, herhangi bir ücret ödememek için aşağıdaki adımları kullanarak bu hızlı başlangıç tarafından oluşturulan tüm kaynakları silin:If you're not going to continue to use this app, delete all resources created by this quickstart with the following steps so you don't incur any charges:

  1. Azure portalında, en solda bulunan Kaynak grupları’nı ve ardından oluşturduğunuz kaynak grubunu seçin.In the Azure portal, select Resource groups on the far left, and then select the resource group you created. Alternatif olarak kaynak grubunu adıyla bulmak için arama kutusunu kullanabilirsiniz.Alternatively, you may use the search box to find the resource group by its name.

  2. Açılan pencerede kaynak grubunu seçin ve Kaynak grubunu sil’e tıklayın.In the window that opens, select the resource group, and then click Delete resource group.

  3. Yeni pencerede, silmek için kaynak grubunun adını yazıp Sil öğesine tıklayın.In the new window, type the name of the resource group to delete, and then click Delete.

Sonraki adımlarNext steps

Bu hızlı başlangıçta, gerçek zamanlı ileti SignalR hizmetinden istemcilere yayınlamak için REST API'sini kullanmayı öğrendiniz.In this quickstart, you learned how to use REST API to broadcast real-time message from SignalR Service to clients. Ardından, geliştirme ve Azure işlevleri ile SignalR hizmeti dağıtma hakkında daha fazla bilgi REST API temelinde oluşturulan bağlama.Next, learn more about how to develop and deploy Azure Functions with SignalR Service binding, which is built on top of REST API.