Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tavsiye
Socket.IO artık Azure'da yerel olarak desteklenmektedir. Binlerce bağlantıyı işlemek üzere bir Socket.IO uygulamasının ölçeğini genişletmek genellikle sinir bozucudur. Azure artık Socket.IO yerel olarak desteklediğine göre, Azure'ın ölçeklenebilirlik ve kullanılabilirliği işlemesini sağlayabilirsiniz. Birkaç kod satırıyla Azure'da çalışan herhangi bir Socket.IO uygulamasını nasıl edinebileceğiniz hakkında daha fazla bilgi edinin.
Önemli
Cloud Services (klasik), 1 Eylül 2024 itibarıyla tüm müşteriler için kullanım dışı bırakılmıştır. Çalışan tüm dağıtımlar Microsoft tarafından durdurulacak ve kapatılacak ve Veriler Ekim 2024'den itibaren kalıcı olarak kaybolacaktır. Yeni dağıtımlarda yeni Azure Resource Manager tabanlı dağıtım modeli Azure Cloud Services (genişletilmiş destek) kullanılmalıdır.
Socket.IO, Node.js sunucunuzla istemcileriniz arasında gerçek zamanlı iletişim sağlar. Bu öğretici, Azure üzerinde socket.IO tabanlı bir sohbet uygulaması barındırma konusunda size yol gösterir. Socket.IO hakkında daha fazla bilgi için bkz . socket.io.
Aşağıdaki ekran görüntüsünde tamamlanmış uygulama gösterilmektedir:
! [Azure'da barındırılan hizmeti gösteren tarayıcı penceresi][completed-app]
Önkoşullar
Bu makaledeki örneği başarıyla tamamlamak için aşağıdaki ürünlerin ve sürümlerin yüklendiğinden emin olun:
- Visual Studio'yu yükleme
- Node.js’yi yükleme
- Python sürüm 2.7.10'u yükleme
Bulut Hizmeti Projesi Oluşturma
Aşağıdaki adımlar, Socket.IO uygulamasını barındıran bulut hizmeti projesini oluşturur.
Başlat Menüsü veya Başlangıç Ekranı'ndan Windows PowerShell'i arayın. Son olarak, Windows PowerShell'e sağ tıklayın ve Yönetici Olarak Çalıştır'ı seçin.
c:\node adlı bir dizin oluşturun.
PS C:\> md nodeDizinleri c:\node dizinine değiştirme
PS C:\> cd nodeYeni bir çözüm adı olarak
chatappve bir çalışan rolü adı olarakWorkerRole1oluşturmak için aşağıdaki komutları girin:PS C:\node> New-AzureServiceProject chatapp PS C:\Node> Add-AzureNodeWorkerRoleAşağıdaki yanıtı görürsünüz:
Sohbet Örneğini indirin
Bu proje için [Socket.IO GitHub deposundaki] sohbet örneğini kullanacağız. Örneği indirmek ve daha önce oluşturduğunuz projeye eklemek için aşağıdaki adımları gerçekleştirin.
Klonla düğmesini kullanarak deponun yerel bir kopyasını oluşturun. Projeyi indirmek için ZIP düğmesini de kullanabilirsiniz.
örnekler\sohbet dizinine ulaşana kadar yerel deponun dizin yapısında gezinin. Bu dizinin içeriğini daha önce oluşturulan C:\node\chatapp\WorkerRole1 dizinine kopyalayın.
Önceki ekran görüntüsünde vurgulanan öğeler örnekler\sohbet dizininden kopyalanan dosyalardır
C:\node\chatapp\WorkerRole1 dizininde server.js dosyasını silin ve app.js dosyasını server.js olarak yeniden adlandırın. Bu adım, daha önce Add-AzureNodeWorkerRole cmdlet'i tarafından oluşturulan varsayılan server.js dosyasını kaldırır ve sohbet örneğindeki uygulama dosyasıyla değiştirir.
Server.js Değiştirme ve Modülleri Yükleme
Uygulamayı Azure öykünücüsunda test etmeden önce bazı küçük değişiklikler yapmamız gerekir. server.js dosyasına aşağıdaki adımları uygulayın:
server.js dosyasını Visual Studio'da veya herhangi bir metin düzenleyicisinde açın.
server.js başındaki Modül bağımlılıkları bölümünü bulun ve sio = require('..//..//lib//socket.io') satırını sio = require('socket.io') olarak aşağıdaki gibi değiştirin:
var express = require('express') , stylus = require('stylus') , nib = require('nib') //, sio = require('..//..//lib//socket.io'); //Original , sio = require('socket.io'); //Updated var port = process.env.PORT || 3000; //UpdatedUygulamanın doğru bağlantı noktasında dinlediğinden emin olmak için Not Defteri'nde veya sık kullandığınız düzenleyicide server.js açın ve 3000'i aşağıdaki şekilde process.env.port ile değiştirerek aşağıdaki satırı değiştirin:
//app.listen(3000, function () { //Original app.listen(process.env.port, function () { //Updated var addr = app.address(); console.log(' app listening on http://' + addr.address + ':' + addr.port); });
değişiklikleri server.js kaydettikten sonra gerekli modülleri yüklemek için aşağıdaki adımları kullanın ve uygulamayı Azure öykünücüsunda test edin:
Azure PowerShell'de dizinleri C:\node\chatapp\WorkerRole1 dizinine değiştirin ve bu uygulamanın gerektirdiği modülleri yüklemek için aşağıdaki komutu kullanın:
PS C:\node\chatapp\WorkerRole1> npm installBu komut, package.json dosyasında listelenen modülleri yükler. Komut tamamlandıktan sonra aşağıdaki ekran görüntüsüne benzer bir çıktı görmeniz gerekir:
Bu örnek başlangıçta Socket.IO GitHub deposunun bir parçası olduğundan ve doğrudan göreli yolla Socket.IO kitaplığına başvurduğından, package.json dosyasında Socket.IO başvurulamadığından, aşağıdaki komutu vererek yüklememiz gerekir:
PS C:\node\chatapp\WorkerRole1> npm install socket.io --save
Test ve Dağıtma
Aşağıdaki komutu vererek öykünücüyü başlatın:
PS C:\node\chatapp\WorkerRole1> Start-AzureEmulator -LaunchUyarı
Öykünücüyü başlatma sırasında sorunlarla karşılaşırsanız, örneğin: Start-AzureEmulator : Beklenmeyen bir hata oluştu. Ayrıntılar: Beklenmeyen bir hatayla karşılaşıldı System.ServiceModel.Channels.ServiceChannel iletişim nesnesi, Hatalı durumda olduğundan iletişim için kullanılamaz.
AzureAuthoringTools v 2.7.1 ve AzureComputeEmulator v 2.7'yi yeniden yükleyin. Sürümün eşleştiğinden emin olun.
Bir tarayıcıyı açın ve
http://127.0.0.1dizinine gidin.Tarayıcı penceresi açıldığında bir takma ad girin ve enter tuşuna basın. Bu adım, iletileri belirli bir takma ad olarak göndermenizi sağlar. Çok kullanıcılı işlevselliği test etmek için aynı URL'yi kullanarak daha fazla tarayıcı penceresi açın ve farklı takma adlar girin.
Uygulamayı test ettikten sonra, aşağıdaki komutu vererek öykünücüyü durdurun:
PS C:\node\chatapp\WorkerRole1> Stop-AzureEmulatorUygulamayı Azure'a dağıtmak için Publish-AzureServiceProject cmdlet'ini kullanın. Örneğin:
PS C:\node\chatapp\WorkerRole1> Publish-AzureServiceProject -ServiceName mychatapp -Location "East US" -LaunchÖnemli
Benzersiz bir ad kullandığınızdan emin olun, aksi takdirde yayımlama işlemi başarısız olur. Dağıtım tamamlandıktan sonra tarayıcı açılır ve dağıtılan hizmete gider.
Sağlanan abonelik adının içeri aktarılan yayımlama profilinde olmadığını belirten bir hata alırsanız, Azure'a dağıtmadan önce aboneliğinizin yayımlama profilini indirmeniz ve içeri aktarmanız gerekir. Azure Bulut Hizmeti'ne Node.js uygulama oluşturma ve dağıtma bölümünün Azure'a Uygulama Dağıtma bölümüne bakın
! [Azure'da barındırılan hizmeti gösteren tarayıcı penceresi][completed-app]
Uyarı
Sağlanan abonelik adının içeri aktarılan yayımlama profilinde olmadığını belirten bir hata alırsanız, Azure'a dağıtmadan önce aboneliğinizin yayımlama profilini indirmeniz ve içeri aktarmanız gerekir. Azure Bulut Hizmeti'ne Node.js uygulama oluşturma ve dağıtma bölümünün Azure'a Uygulama Dağıtma bölümüne bakın
Uygulamanız artık Azure'da çalışıyor ve Socket.IO kullanarak farklı istemciler arasında sohbet iletileri aktarabiliyor.
Uyarı
Kolaylık olması için bu örnek, aynı örneğe bağlı kullanıcılar arasında sohbet etmekle sınırlıdır. Bu, bulut hizmetinin iki çalışan rolü örneği oluşturması durumunda kullanıcıların yalnızca aynı çalışan rolü örneğine bağlı diğer kişilerle sohbet edebilecekleri anlamına gelir. Uygulamayı birden çok rol örneğiyle çalışacak şekilde ölçeklendirmek için Service Bus gibi bir teknoloji kullanarak Socket.IO depolama durumunu örnekler arasında paylaşabilirsiniz. Örnekler için bkz. Node.js GitHub deposu için Azure SDK'sında Service Bus Kuyrukları ve Konu kullanım örnekleri.
Sonraki adımlar
Bu öğreticide, Azure Bulut Hizmeti'nde barındırılan temel bir sohbet uygulaması oluşturmayı öğrendiniz. Bu uygulamayı azure web sitesinde barındırmayı öğrenmek için bkz . Azure Web Sitesinde Socket.IO ile Node.js Sohbet Uygulaması oluşturma.
Daha fazla bilgi için Node.js Geliştirici Merkezi'ne de bakın.