Hızlı Başlangıç: Konsol uygulamasından gerçek zamanlı iletiler yayımlama

Azure SignalR hizmeti, yayıncılık gibi sunucudan istemciye doğrudan iletişim senaryolarını desteklemek için REST API’sini sağlar. REST API çağrısı yapabilen herhangi bir programlama dilini seçebilirsiniz. Bağlı tüm istemcilere, adına göre belirli bir istemciye veya bir istemci grubuna iletiler gönderebilirsiniz.

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.

Önkoşullar

Bu hızlı başlangıç; macOS, Windows veya Linux üzerinde çalıştırılabilir.

  • .NET Core SDK
  • Tercih ettiğiniz bir metin veya kod düzenleyicisi.

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Azure'da oturum açma

Azure hesabınızla Azure portalında https://portal.azure.com/ sayfasında oturum açın.

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Azure SignalR Hizmeti örneği oluşturma

Uygulamanız Azure’da bir SignalR hizmeti örneğine bağlanır.

  1. Azure portalın sol üst köşesinde bulunan Yeni düğmesini seçin. Yeni ekranda arama kutusuna SignalR hizmeti yazın ve Enter tuşuna basın.

    Ekran görüntüsünde, Azure portal SignalR hizmeti araması gösterilmektedir.

  2. Arama sonuçlarından SignalR Hizmeti’ni seçtikten sonra Oluştur’u seçin.

  3. Aşağıdaki ayarları girin.

    Ayar Önerilen değer Açıklama
    Kaynak adı Genel olarak benzersiz bir ad Yeni SignalR Hizmeti örneğinizi tanımlayan ad. Geçerli karakterler: a-z, 0-9 ve -.
    Abonelik Aboneliğiniz Yeni SignalR Hizmeti örneğinin oluşturulacağı abonelik.
    Kaynak Grubu myResourceGroup SignalR Hizmeti örneğinizin oluşturulacağı yeni kaynak grubunun adı.
    Konum Batı ABD Size yakın bir bölge seçin.
    Fiyatlandırma katmanı Ücretsiz Azure SignalR Hizmetini ücretsiz deneyin.
    Birim sayısı Uygulanamaz Birim sayısı, SignalR Hizmeti örneğinizin kaç bağlantı kabul edebileceğini belirtir. Bu yalnızca Standart katmanda yapılandırılabilir.
    Hizmet modu Sunucusuz Azure Işlevleri veya REST API kullanmak için.

    Ekran görüntüsünde, değer içeren SignalR temel kavramları sekmesi gösterilmektedir.

  4. SignalR Hizmeti örneğini dağıtmaya başlamak için Oluştur’u seçin.

  5. Örnek dağıtıldıktan sonra portalda açın ve ayarlar sayfasını bulun. 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. Aksi halde Klasik veya varsayılan olarak bırakın.

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Örnek uygulamayı kopyalama

Hizmet dağıtılırken kodu hazırlamaya geçiş yapalım. GitHub'dan örnek uygulamayı kopyalayın, SignalR Hizmetinin bağlantı dizesini ayarlayın ve uygulamayı yerel olarak çalıştırın.

  1. Bir git terminal penceresi açın. Örnek projeyi kopyalamak istediğiniz klasöre gidin.

  2. Örnek depoyu kopyalamak için aşağıdaki komutu çalıştırın. Bu komut bilgisayarınızda örnek uygulamanın bir kopyasını oluşturur.

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

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Örneği derleme ve çalıştırma

Bu örnek, Azure SignalR Hizmetinin kullanımını gösteren bir konsol uygulamasıdır. İki mod sunar:

  • Sunucu modu: Azure SignalR Hizmetinin REST API'sini çağırmak için basit komutlar kullanın.
  • İstemci modu: Azure SignalR Hizmetine bağlanarak sunucudan ileti alın.

Ayrıca Azure SignalR Hizmeti ile kimlik doğrulaması için nasıl bir erişim belirteci oluşturacağınızı da öğrenebilirsiniz.

Yürütülebilir dosyayı derleme

Örnek olarak macOS osx.10.13-x64 kullanıyoruz. Nasıl diğer platformlar için derleyeceğiniz hakkında başvuru belgeleri bulabilirsiniz.

cd AzureSignalR-samples/samples/Serverless/

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

İstemci başlatma

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

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

Sunucu başlatma

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

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

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Örneği yayımlamadan çalıştırma

Bir sunucu veya istemci başlatmak için aşağıdaki komutu da çalıştırabilirsiniz

# 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 kullanma

dotnet user-secrets set Azure:SignalR:ConnectionString "<ConnectionString>" öğesini örneğin kök dizininde çalıştırabilirsiniz. Bundan sonra -c "<ConnectionString>" seçeneğine ihtiyacınız kalmaz.

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Kullanım

Sunucu başlatıldıktan sonra komutunu kullanarak ileti gönderin:

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.

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Üçüncü taraf hizmetlerle tümleştirme

Azure SignalR hizmeti, üçüncü taraf hizmetlerin sistemle tümleştirilmesini sağlar.

Teknik özelliklerin tanımı

Aşağıdaki tabloda, desteklenen tüm REST API sürümleri gösterilmektedir. Belirli bir sürüme ait tanım dosyasını da bulabilirsiniz

Sürüm API Durumu Kapı Özel
1.0-preview Kullanılabilir 5002 Swagger
1.0 Kullanılabilir Standart Swagger

Her sürüm için kullanılabilir API'lerin listesi aşağıda verilmiştir.

API 1.0-önizleme 1.0
Tümüne yayınla
Gruba yayınla
Bazı gruplara yayın (Kullanım Dışı) N / A
Kullanıcıya gönderme
Bazı kullanıcılara gönder (Kullanım Dışı) N / A
Gruba kullanıcı ekleme N / A
Gruptan kullanıcı kaldırma N / A
Kullanıcının varlığını denetleme N / A
Bir kullanıcıyı tüm gruplardan kaldırma N / A
Bir bağlantıya gönderme N / A
Gruba bağlantı ekleme N / A
Gruptan bağlantı kaldırma N / A
İstemci bağlantısını kapatma N / A
Hizmet Durumu N / A

Herkese yayınlama

Sürüm API HTTP Yöntemi İstek URL’si İstek gövdesi
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ı

Gruba yayınla

Sürüm API HTTP Yöntemi İstek URL’si İstek gövdesi
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ı

Kullanıcıya gönderme

Sürüm API HTTP Yöntemi İstek URL’si İstek gövdesi
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ı

Gruba kullanıcı ekleme

Sürüm API HTTP Yöntemi İstek URL’si
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Gruptan kullanıcı kaldırma

Sürüm API HTTP Yöntemi İstek URL’si
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>

Bir grupta kullanıcı varlığını denetleme

API Sürümü API HTTP Yöntemi İstek URL’si
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups/<group-name>
1.0 GET https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/users/<user-id>
Yanıt Durum Kodu Açıklama
200 Kullanıcı var
404 Kullanıcı yok

Bir kullanıcıyı tüm gruplardan kaldırma

API Sürümü API HTTP Yöntemi İstek URL’si
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/users/<user-id>/groups

Bir bağlantıya ileti gönderme

API Sürümü API HTTP Yöntemi İstek URL’si İstek Gövdesi
1.0 POST https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id> { "target":"<method-name>", "arguments":[ ... ] }

Gruba bağlantı ekleme

API Sürümü API HTTP Yöntemi İstek URL’si
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 PUT https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

Gruptan bağlantı kaldırma

API Sürümü API HTTP Yöntemi İstek URL’si
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/groups/<group-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>/groups/<group-name>

İstemci bağlantısını kapatma

API Sürümü API HTTP Yöntemi İstek URL’si
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>
1.0 DELETE https://<instance-name>.service.signalr.net/api/v1/hubs/<hub-name>/connections/<connection-id>?reason=<close-reason>

Hizmet Durumu

API Sürümü API HTTP Yöntemi İstek URL’si
1.0 GET https://<instance-name>.service.signalr.net/api/v1/health
Yanıt Durum Kodu Açıklama
200 Hizmet İyi
5xx Hizmet Hatası

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Kaynakları temizleme

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:

  1. Azure portalında, en solda bulunan Kaynak grupları’nı ve ardından oluşturduğunuz kaynak grubunu seçin. Alternatif olarak kaynak grubunu adıyla bulmak için arama kutusunu kullanabilirsiniz.

  2. Açılan pencerede kaynak grubunu seçin ve Kaynak grubunu sil’e tıklayın.

  3. Yeni pencerede, silmek için kaynak grubunun adını yazıp Sil öğesine tıklayın.

Sorun mu var? Sorun giderme kılavuzunu deneyin veya bize haber ver.

Sonraki adımlar

Bu hızlı başlangıçta, SignalR Hizmeti'REST API istemcilere gerçek zamanlı ileti yayını yapmak için REST API kullanmayı öğrendiniz. Daha sonra, bu bağlamanın üzerine Azure İşlevleri SignalR Hizmeti bağlaması ile veri geliştirme ve dağıtma hakkında daha fazla REST API.