İngilizce dilinde oku

Aracılığıyla paylaş


Sunucudan ileti gönderme

Tanıdık HTTP isteği/yanıt modeli, kullanımı kolay ve ölçeklenebilir olacak şekilde tasarlanmıştır. Ancak günümüzde son kullanıcılar web'den başlangıçta tasarlandığından çok daha fazlasını talep ediyor. HTTP protokolü, kullanıcıların yanıt almak için isteği başlatmasını gerektirir. Ancak geliştiricilerin, istemeden sunucudan istemcilere veri göndermenin bir yoluna ihtiyacı vardır; başka bir deyişle, bir müzayede sitesinde bir ürünün en son teklif fiyatını gönderme veya finansal bir uygulamada hızlı hareket eden hisse senedi fiyatları gibi verileri müşterilere "göndermeleri" gerekir.

Bağlı istemciye veri göndererek uygulama sunucusunun GIF'i.

Bu hızlı başlangıç kılavuzunda nasıl yapılır gösterilmektedir

  • uygulama sunucusundan iletilere abone olma
  • bir uygulama sunucusundan tüm bağlı istemcilere veri gönderme

Önemli

Ham bağlantı dizesi yalnızca tanıtım amacıyla bu makalede görünür.

bağlantı dizesi, uygulamanızın Azure Web PubSub hizmetine erişmesi için gereken yetkilendirme bilgilerini içerir. bağlantı dizesi içindeki erişim anahtarı, hizmetinizin kök parolasına benzer. Üretim ortamlarında erişim anahtarlarınızı her zaman koruyun. Anahtarlarınızı güvenli bir şekilde yönetmek ve döndürmek ve bağlantınızın WebPubSubServiceClientgüvenliğini sağlamak için Azure Key Vault kullanın.

Erişim anahtarlarını diğer kullanıcılara dağıtmaktan, sabit kodlamaktan veya başkalarının erişebileceği herhangi bir yerde düz metin olarak kaydetmekten kaçının. Ele geçirilmiş olabileceklerini düşünüyorsanız anahtarlarınızı döndürün.

Önkoşullar

  • Web PubSub kaynağı. Henüz oluşturmadıysanız şu yönergeleri izleyebilirsiniz: Web PubSub kaynağı oluşturma
  • Visual Studio Code gibi bir kod düzenleyicisi
  • Kullanmayı planladığınız dil için bağımlılıkları yükleme

Abone istemcisi oluşturma

Uygulama sunucunuzdan, istemcinizden, tarayıcıdan, mobil uygulamadan veya IoT cihazından gönderilen iletilere abone olmak için önce Web PubSub kaynağınıza bağlanması ve uygun ileti olayını dinlemesi gerekir.

adlı subscriber bir proje dizini oluşturma ve gerekli bağımlılıkları yükleme

mkdir subscriber
cd subscriber
npm init -y
    
# The client SDK is available as a module on NPM
npm install @azure/web-pubsub-client

Web PubSub kaynağınıza bağlanın ve olay için server-message bir dinleyici kaydedin

İstemci, kaynağınıza bağlanmak ve kaynağınızla kimlik doğrulaması yapmak için bir İstemci Erişim URL'si kullanır. Bu URL, desenini izler wss://<service_name>.webpubsub.azure.com/client/hubs/<hub_name>?access_token=<token>. İstemcinin İstemci Erişimi URL'sini almak için birkaç yolu olabilir. Bu hızlı başlangıç için aşağıdaki diyagramda gösterilen Azure portalından kopyalayıp yapıştırabilirsiniz. Kodunuzdaki İstemci Erişimi URL'sini sabit kodla kodlamayın. Üretim dünyasında genellikle bu URL'yi isteğe bağlı olarak döndürmek için bir uygulama sunucusu ayarlarız. İstemci Erişimi URL'si Oluşturma, uygulamayı ayrıntılı olarak açıklar.

Diyagramda istemci erişim URL'sini alma gösterilmektedir.

Yukarıdaki diyagramda gösterildiği gibi, istemci adlı myHub1hub'ı birleştirir.

subscriber Proje klasöründe aşağıdaki kodla adlı subscribe.js bir dosya oluşturun

const { WebPubSubClient } = require("@azure/web-pubsub-client");

// Instantiates the client object
// <client-access-url> is copied from Azure portal mentioned above
const client = new WebPubSubClient("<client-access-url>")

// Registers a handler for the "server-message" event
client.on("server-message", (e) => {
    console.log(`Received message ${e.message.data}`)
});

// Before a client can receive a message, 
// you must invoke start() on the client object.
client.start();

Programı çalıştırma

node subscribe.js

Şimdi bu istemci Web PubSub kaynağınızla bir bağlantı kurar ve uygulama sunucunuzdan gönderilen iletileri almaya hazırdır.

Uygulama sunucunuzdan ileti gönderme

Artık Web PubSub kaynağınıza bağlı bir istemciniz olduğuna göre, Web PubSub tarafından sağlanan sunucu SDK'sını kullanarak istediğiniz zaman bir uygulama sunucusundan ileti gönderebilirsiniz.

adlı publisher yeni bir proje dizini oluşturun ve gerekli bağımlılıkları yükleyin

mkdir publisher
cd publisher

npm init

# This command installs the server SDK from NPM, 
# which is different from the client SDK you used in subscribe.js
npm install --save @azure/web-pubsub

Aşağıdaki kodla bir publish.js dosya oluşturun

const { WebPubSubServiceClient } = require('@azure/web-pubsub');

// This is the hub name we used on Azure portal when generating the Client Access URL. 
// It ensures this server can push messages to clients in the hub named "myHub1".
const hub = "myHub1";
    
let server = new WebPubSubServiceClient(process.env.WebPubSubConnectionString, hub);

// By default, the content type is `application/json`. 
// Specify contentType as `text/plain` for this demo.
server.sendToAll(process.argv[2], { contentType: "text/plain" });

Çağrı, server.sendToAll() bir hub'daki tüm bağlı istemcilere bir ileti gönderir.

Bağlantı dizesini alma

Önemli

bağlantı dizesi, uygulamanızın Web PubSub hizmetine erişmesi için gereken yetkilendirme bilgilerini içerir. bağlantı dizesi içindeki erişim anahtarı, hizmetinizin kök parolasına benzer.

Bu hızlı başlangıç kılavuzu için aşağıda gösterildiği gibi Azure portalından alacağız. İstemci erişim URL'sini almayı gösteren diyagram.

Sunucu programını çalıştırma

Aşağıdaki komutları yeni bir komut kabuğunda çalıştırın.

Ham bağlantı dizesi yalnızca tanıtım amacıyla bu makalede görünür. Üretim ortamlarında erişim anahtarlarınızı her zaman koruyun. Anahtarlarınızı güvenli bir şekilde yönetmek ve döndürmek ve bağlantınızın WebPubSubServiceClientgüvenliğini sağlamak için Azure Key Vault kullanın.

# Set the environment variable for your connection string.
export WebPubSubConnectionString="<Put your connection string here>" 

node publish.js "Hello World"

İstemci tarafında alınan iletileri gözlemleme

Bağlı istemciye veri göndererek bir uygulama sunucusunu gösteren GIF.

İstemcilerden daha fazlasını uyarmak için aynı "abone ol" programını birden çok komut kabuğunda çalıştırmayı deneyin. "Yayımla" programı çalıştırılır çalıştırılmaz iletilerin tüm bu istemcilere gerçek zamanlı olarak teslim edildiğini görmeniz gerekir.

Özet

Bu hızlı başlangıçta, bir uygulama sunucusundan hub'daki tüm bağlı istemcilere ileti göndermenin ne kadar kolay olduğu gösterilmektedir. Ayrıca, Web PubSub iletileri

  • hub'daki istemcilerin bir alt kümesi
  • hub'daki belirli bir grup
  • gruptaki istemcilerin bir alt kümesi

Bu API'ler, geliştiricilerin benzersiz iş mantığına odaklanmasını sağlarken Web PubSub'un düşük gecikme süresi (<100ms), yüksek kullanılabilirlik ve büyük ölçekli (milyondan fazla eşzamanlı bağlantı) sunduğundan emin olmasını sağlar.

Sonraki adımlar

Sonraki adımda, eksiksiz web uygulamaları oluşturmak için gereken Web PubSub olay sistemiyle nasıl çalışacağımızı keşfedeceğiz.