微软在Azure Web PubSub上推出Socket.IO支持的公测版

Microsoft Azure 新增 Socket.IO 支持

Microsoft 最近在 Azure 上新增了对 Socket.IO 的公开预览支持,允许开发者通过 Web PubSub 使用完全托管的云解决方案。这一新功能名为 Azure Web PubSub for Socket.IO,旨在简化使用 Socket.IO 库的应用程序的客户端连接管理。

主要功能与优势

  1. 简化连接管理:开发者可以将自托管的 Socket.IO 应用程序迁移到 Azure Web PubSub for Socket.IO,无需再管理多个 Socket.IO 服务器或适配器。
  2. 减少服务器负担:在自托管场景中,客户端通过 WebSocket 或长轮询直接与服务器建立连接,这会导致服务器负载过重,限制并发连接数并增加消息延迟。Azure 的托管解决方案解决了这一问题。
  3. 无需额外适配器:在自托管环境中,扩展多个 Socket.IO 服务器需要引入适配器,增加了开发和管理的复杂性。Azure 托管方案自动处理扩展和适配器相关的逻辑,开发者无需编写额外代码。

代码示例

客户端代码

const io = require("socket.io-client");
const socket = io("<web-pubsub-socketio-endpoint>", {
    path: "/clients/socketio/hubs/Hub",
});

// 接收服务器消息
socket.on("hello", (arg) => {
    console.log(arg);
});

// 向服务器发送消息
socket.emit("howdy", "stranger");

服务器端代码

const { Server } = require("socket.io");
const { useAzureSocketIO } = require("@azure/web-pubsub-socket.io");

let io = new Server(3000);

// 集成 Azure Web PubSub for Socket.IO
useAzureSocketIO(io, {
    hub: "Hub", // Hub 名称可以是任意有效字符串
    connectionString: process.argv[2]
});

io.on("connection", (socket) => {
    // 向客户端发送消息
    socket.emit("hello", "world");

    // 接收客户端消息
    socket.on("howdy", (arg) => {
        console.log(arg); // 输出 "stranger"
    });
});

开发者反馈

  • Kevin Guo(Microsoft 产品经理)表示,开发者可以继续使用熟悉的 Socket.IO API,只需几行代码即可将本地 Socket.IO 应用程序迁移到 Azure。
  • Martin Flower(Microsoft .NET 杰出工程师)在推特中提到,虽然他个人更倾向于使用 SignalR,但对于 Node.js 应用程序来说,这一支持显著降低了基于 Socket.IO 的应用程序扩展的复杂性。

定价与可用性

由于 Socket.IO 托管在 Azure Web PubSub 上,详细的定价和可用性信息可以在 Azure Web PubSub 定价页面上找到。

总结

Azure Web PubSub for Socket.IO 提供了一个完全托管的解决方案,简化了 Socket.IO 应用程序的连接管理和扩展,减少了开发者的负担,同时保持了与现有 Socket.IO API 的兼容性。

阅读 30
0 条评论