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.
Bu makalede, Socket.IO için Web PubSub kullanarak bir Socket.IO sohbet uygulamasını Azure'a geçirirsiniz.
Ö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
- Etkin aboneliği olan bir Azure hesabı. Hesabınız yoksa ücretsiz bir hesap oluşturabilirsiniz.
- Socket.IO kitaplığı hakkında biraz bilgi.
Socket.IO kaynağı için Web PubSub oluşturma
Azure portala gidin.
socket.io arayın ve Socket.IO için Web PubSub'ı seçin.
Bir plan seçin ve ardından Oluştur'u seçin.
Uygulamayı geçirme
Bu kılavuzdaki geçiş işlemi için Socket.IO'nun web sitesinde sağlanan örnek bir sohbet uygulamasını kullanırsınız. Geçişi tamamlamak için hem sunucu tarafında hem de istemci tarafı kodunda bazı küçük değişiklikler yapmanız gerekir.
Sunucu tarafı
Sunucu tarafı kodunda bulun
index.js.@azure/web-pubsub-socket.ioPaketi ekleyin:npm install @azure/web-pubsub-socket.ioPaketi içeri aktarın:
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");Socket.IO sunucusunu oluşturduğunuz sunucu tarafı kodunuzda bulun ve useAzureSocketIO(...) ekleyin:
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.const io = require("socket.io")(); useAzureSocketIO(io, { hub: "eio_hub", // The hub name can be any valid string. connectionString: process.argv[2] });Önemli
useAzureSocketIOyöntemi zaman uyumsuzdur ve Web PubSub'a bağlanmak için başlatma adımları uygular. Uygulama sunucunuzun başlatma başarılı olduktan sonra istekler göndermeye başladığından emin olmak için kullanabilirawait useAzureSocketIO(...)veya kullanabilirsinizuseAzureSocketIO(...).then(...).Aşağıdaki sunucu API'lerini kullanıyorsanız, Socket.IO için Web PubSub ile zaman uyumsuz olduklarından, bunları kullanmadan önce ekleyin
async:Örneğin, aşağıdaki gibi bir kod varsa:
io.on("connection", (socket) => { socket.join("room abc"); });Şu şekilde güncelleştirin:
io.on("connection", async (socket) => { await socket.join("room abc"); });Bu sohbet örneği bu API'lerin hiçbirini kullanmaz. Bu nedenle herhangi bir değişiklik yapmanız gerekmez.
İstemci tarafı
Azure portalında kaynağınızın uç noktasını bulun.
./public/main.jsİstemci tarafı koduna gidin.Socket.IO istemcisinin nerede oluşturulduğunu bulun. Uç noktasını Azure'daki Socket.IO uç noktasıyla değiştirin ve bir
pathseçenek ekleyin:const socket = io("<web-pubsub-for-socketio-endpoint>", { path: "/clients/socketio/hubs/eio_hub", });