Hızlı Başlangıç: Konsol uygulamasından gerçek zamanlı iletiler yayımlama
Azure SignalR Hizmeti sağlar Yayın gibi sunucudan istemciye iletişim senaryolarını desteklemek için REST API. REST API çağrıları 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 ileti göndermeyi öğ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 birücretsiz Azure hesabı oluşturun.
Sorun mu yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Azure'da oturum açma
Azure hesabınızı kullanarak Azure portalda oturum açın.
Sorun mu yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Bu bölümde, uygulamanız için kullanılacak temel bir Azure SignalR örneği oluşturacaksınız. Aşağıdaki adımlarda yeni bir örnek oluşturmak için Azure portalı kullanılır, ancak Azure CLI'yı da kullanabilirsiniz. Daha fazla bilgi için Azure SignalR Hizmeti CLI Başvurusu'ndaki az signalr create komutuna bakın.
- Azure Portal’ında oturum açın.
- Sayfanın sol üst kısmında + Kaynak oluştur'u seçin.
- Kaynak oluştur sayfasında, Arama hizmeti s ve market metin kutusuna signalr yazın ve listeden SignalR Hizmeti seçin.
- SignalR Hizmeti sayfasında Oluştur'u seçin.
- Temel Bilgiler sekmesinde, yeni SignalR Hizmeti örneğinin temel bilgilerini girersiniz. Aşağıdaki değerleri girin:
Alan | Önerilen Değer | Açıklama |
---|---|---|
Abonelik | Aboneliğinizi seçin | Yeni bir SignalR Hizmeti örneği oluşturmak için kullanmak istediğiniz aboneliği seçin. |
Kaynak grubu | SignalRTestResources adlı bir kaynak grubu oluşturma | SignalR kaynağınız için bir kaynak grubu seçin veya oluşturun. Mevcut bir kaynak grubunu kullanmak yerine bu öğretici için yeni bir kaynak grubu oluşturmak yararlı olur. Öğreticiyi tamamladıktan sonra kaynakları boşaltmak için kaynak grubunu silin. Bir kaynak grubunun silinmesi, gruba ait olan tüm kaynakları da siler. Bu eylem geri alınamaz. Bir kaynak grubunu silmeden önce, tutmak istediğiniz kaynakları içermediğinden emin olun. Daha fazla bilgi için bkz. Azure kaynaklarınızı yönetmek için kaynak gruplarını kullanma. |
Kaynak adı | testsignalr | SignalR kaynağı için kullanılacak benzersiz kaynak adını girin. Testsignalr bölgenizde zaten alınmışsa, ad benzersiz olana kadar bir basamak veya karakter ekleyin. Ad 1 ile 63 karakter arasında bir dize olmalı ve yalnızca sayı, harf ve kısa çizgi ( - ) karakteri içermelidir. Ad kısa çizgi karakteriyle başlayamaz veya bitemez ve ardışık kısa çizgi karakterleri geçerli değildir. |
Bölge | Bölgenizi seçin | Yeni SignalR Hizmeti örneğiniz için uygun bölgeyi seçin. Azure SignalR Hizmeti şu anda tüm bölgelerde kullanılamamaktadır. Daha fazla bilgi için bkz. Azure SignalR Hizmeti bölge kullanılabilirliği |
Fiyatlandırma katmanı | Değiştir'i ve ardından Ücretsiz (Yalnızca Geliştirme/Test) seçeneğini belirleyin. Fiyatlandırma katmanı seçiminizi onaylamak için Seç'i seçin. | Azure SignalR Hizmeti üç fiyatlandırma katmanı vardır: Ücretsiz, Standart ve Premium. Öğreticiler, önkoşullarda aksi belirtilmedikçe Ücretsiz katmanını kullanır. Katmanlar ve fiyatlandırma arasındaki işlevsellik farkları hakkında daha fazla bilgi için bkz. fiyatlandırma Azure SignalR Hizmeti |
Hizmet modu | Uygun hizmet modunu seçin | Web uygulamalarınızda SignalR hub mantığını barındırırken ve SignalR hizmetini ara sunucu olarak kullanırken Varsayılan'ı kullanın. SignalR hub mantığını barındırmak için Azure İşlevleri gibi Sunucusuz teknolojileri kullanırken Sunucusuz'u kullanın. Klasik mod yalnızca geriye dönük uyumluluk içindir ve kullanılması önerilmez. Daha fazla bilgi için bkz. Azure SignalR Hizmeti'de hizmet modu. |
SignalR öğreticileri için Ağ ve Etiketler sekmelerindeki ayarları değiştirmeniz gerekmez.
- Temel Bilgiler sekmesinin en altındaki Gözden Geçir + oluştur düğmesini seçin.
- Gözden geçir ve oluştur sekmesinde değerleri gözden geçirin ve Oluştur'u seçin. Dağıtımın tamamlanması birkaç dakika sürer.
- Dağıtım tamamlandığında Kaynağa git düğmesini seçin.
- SignalR kaynağı sayfasında, sol taraftaki menüden Ayarlar'ın altında Anahtarlar'ı seçin.
- Birincil anahtar için Bağlantı dizesini kopyalayın. Bu öğreticinin ilerleyen bölümlerinde uygulamanızı yapılandırmak için bu bağlantı dizesi gerekir.
Sorun mu yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Örnek uygulamayı kopyalama
Hizmet dağıtılırken kodu hazırlayalım. İlk olarak GitHub'dan örnek uygulamayı kopyalayın. Ardından SignalR Hizmeti bağlantı dizesi uygulamaya ayarlayın. Son olarak, uygulamayı yerel olarak çalıştırın.
Bir git terminal penceresi açın. Örnek projeyi kopyalamak istediğiniz klasöre gidin.
Ö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 yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Ö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ı yapmak için erişim belirteci oluşturmayı da öğrenirsiniz.
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 yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Örneği yayımlamadan çalıştırma
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 yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Kullanım
Sunucu başlatıldıktan sonra şu komutu 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 yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Microsoft hizmetleri olmayanlarla tümleştirme
Azure SignalR hizmeti, Microsoft hizmetleri olmayanların sistemle tümleştirilmesine olanak tanır.
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ı varlığını denetleme | N / A |
✓ |
Bir kullanıcıyı tüm gruplardan kaldırma | N / A |
✓ |
Bağlantıya gönder | 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 | Request 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> |
{"target": "<method-name>", "arguments": [...]} |
Gruba yayınla
Sürüm | API HTTP Yöntemi | İstek URL’si | Request 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> |
{"target": "<method-name>", "arguments": [...]} |
Kullanıcıya gönderme
Sürüm | API HTTP Yöntemi | İstek URL’si | Request 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> |
{"target": "<method-name>", "arguments": [...]} |
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> |
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 |
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 yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
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:
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.
Açılan pencerede kaynak grubunu seçin ve Kaynak grubunu sil’e tıklayın.
Yeni pencerede, silmek için kaynak grubunun adını yazıp Sil öğesine tıklayın.
Sorun mu yaşıyorsunuz? Sorun giderme kılavuzunu deneyin veya bize bildirin.
Sonraki adımlar
Bu hızlı başlangıçta, rest API kullanarak SignalR Hizmeti istemcilere gerçek zamanlı ileti yayınlamayı öğrendiniz. Ardından, REST API'nin üzerinde oluşturulan SignalR Hizmeti bağlama ile Azure İşlevleri geliştirme ve dağıtma hakkında daha fazla bilgi edinin.