Aracılığıyla paylaş


Şirket içinde barındırılan bir Socket.IO uygulamasını Azure'da tam olarak yönetilecek şekilde geçirme

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

  1. Azure portala gidin.

  2. socket.io arayın ve Socket.IO için Web PubSub'ı seçin.

  3. Bir plan seçin ve ardından Oluştur'u seçin.

    Azure portalında Socket.IO hizmeti için Web PubSub'un ekran görüntüsü.

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ı

  1. Sunucu tarafı kodunda bulun index.js .

  2. @azure/web-pubsub-socket.io Paketi ekleyin:

    npm install @azure/web-pubsub-socket.io
    
  3. Paketi içeri aktarın:

    const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");
    
  4. 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

    useAzureSocketIO yö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 kullanabilir await useAzureSocketIO(...) veya kullanabilirsiniz useAzureSocketIO(...).then(...) .

  5. 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ı

  1. Azure portalında kaynağınızın uç noktasını bulun.

    Socket.IO kaynağı için uç noktayı Web PubSub'a alma işleminin ekran görüntüsü.

  2. ./public/main.js İstemci tarafı koduna gidin.

  3. Socket.IO istemcisinin nerede oluşturulduğunu bulun. Uç noktasını Azure'daki Socket.IO uç noktasıyla değiştirin ve bir path seçenek ekleyin:

    const socket = io("<web-pubsub-for-socketio-endpoint>", {
        path: "/clients/socketio/hubs/eio_hub",
    });