Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Web PubSub szolgáltatás egy Azure által felügyelt szolgáltatás, amellyel a fejlesztők egyszerűen készíthetnek webalkalmazásokat valós idejű funkciókkal és közzétételi-feliratkozási mintával. Az Azure Web PubSub szolgáltatást minden olyan forgatókönyv használhatja, amely valós idejű közzétételi-feliratkozási üzenetküldést igényel a kiszolgáló és az ügyfelek között, illetve az ügyfelek között. Az Azure Web PubSub szolgáltatást is használhatják a hagyományos, valós idejű funkciók, amelyek gyakran igényelnek lekérdezést a kiszolgálóról vagy HTTP-kérések elküldése.
Amikor egy WebSocket-kapcsolat csatlakozik, a Web PubSub szolgáltatás a kapcsolat életciklusát és az üzeneteket CloudEvents formátumú eseményekké alakítja. Ez a kódtár egy expressz köztes szoftvert biztosít a WebSocket-kapcsolat életciklusát és üzeneteit képviselő események kezelésére az alábbi ábrán látható módon:

Az itt használt kifejezések részleteit a Kulcsfogalmak szakaszban ismertetjük.
Forráskód | Csomag (NPM) | API-referenciadokumentáció | Termékdokumentáció | Minták
Első lépések
Jelenleg támogatott környezetek
- A Node.jsLTS-verziói
- Express 4.x.x vagy újabb verzió
Előfeltételek
- Egy Azure-előfizetés.
- Egy meglévő Azure Web PubSub-végpont.
1. A csomag telepítése @azure/web-pubsub-express
npm install @azure/web-pubsub-express
2. Hozzon létre egy WebPubSubEventHandler
const express = require("express");
const { WebPubSubEventHandler } = require("@azure/web-pubsub-express");
const handler = new WebPubSubEventHandler("chat");
const app = express();
app.use(handler.getMiddleware());
app.listen(3000, () =>
console.log(`Azure WebPubSub Upstream ready at http://localhost:3000${handler.path}`)
);
Fő fogalmak
Kapcsolat
A kapcsolat( más néven ügyfél- vagy ügyfélkapcsolat) a Web PubSub szolgáltatáshoz csatlakoztatott egyéni WebSocket-kapcsolatot jelöli. Sikeres csatlakozás esetén a Web PubSub szolgáltatás egyedi kapcsolatazonosítót rendel ehhez a kapcsolathoz.
Hub
A központ egy logikai fogalom az ügyfélkapcsolatok halmazához. Általában egy központot használ egy célra, például egy csevegőközpontot vagy egy értesítési központot. Az ügyfélkapcsolat létrehozásakor csatlakozik egy központhoz, és annak élettartama alatt az adott központhoz tartozik. A különböző alkalmazások különböző központnevek használatával megoszthatnak egy Azure Web PubSub-szolgáltatást.
Group
A csoport a központtal létesített kapcsolatok részhalmaza. Bármikor hozzáadhat ügyfélkapcsolatot egy csoporthoz, vagy bármikor eltávolíthatja az ügyfélkapcsolatot a csoportból. Ha például egy ügyfél csatlakozik egy csevegőszobához, vagy amikor egy ügyfél elhagyja a csevegőszobát, ez a csevegőszoba csoportnak tekinthető. Az ügyfelek több csoporthoz is csatlakozhatnak, és egy csoport több ügyfelet is tartalmazhat.
Felhasználó
A Web PubSub-kapcsolatok egy felhasználóhoz tartozhatnak. A felhasználók több kapcsolattal is rendelkezhetnek, például ha egyetlen felhasználó több eszközön vagy több böngészőlapon csatlakozik.
Ügyfélesemények
Az események az ügyfélkapcsolat életciklusa során jönnek létre. Egy egyszerű WebSocket-ügyfélkapcsolat például létrehoz egy connect eseményt, amikor megpróbál csatlakozni a szolgáltatáshoz, egy connected eseményt, amikor sikeresen csatlakozik a szolgáltatáshoz, egy message eseményt, amikor üzeneteket küld a szolgáltatásnak, és egy disconnected eseményt, amikor leválasztja a szolgáltatást.
Eseménykezelő
Az eseménykezelő tartalmazza az ügyfélesemények kezelésére vonatkozó logikát. Az eseménykezelőt előzetesen regisztrálni és konfigurálni kell a szolgáltatásban a portálon vagy az Azure CLI-ben. Az eseménykezelő logika üzemeltetésének helye általában kiszolgálóoldali.
Példák
connect A kérés kezelése és hozzárendelése<userId>
const express = require("express");
const { WebPubSubEventHandler } = require("@azure/web-pubsub-express");
const handler = new WebPubSubEventHandler("chat", {
handleConnect: (req, res) => {
// auth the connection and set the userId of the connection
res.success({
userId: "<userId>"
});
},
allowedEndpoints: ["https://<yourAllowedService>.webpubsub.azure.com"]
});
const app = express();
app.use(handler.getMiddleware());
app.listen(3000, () =>
console.log(`Azure WebPubSub Upstream ready at http://localhost:3000${handler.path}`)
);
Csak a megadott végpontok engedélyezése
const express = require("express");
const { WebPubSubEventHandler } = require("@azure/web-pubsub-express");
const handler = new WebPubSubEventHandler("chat", {
allowedEndpoints: [
"https://<yourAllowedService1>.webpubsub.azure.com",
"https://<yourAllowedService2>.webpubsub.azure.com"
]
});
const app = express();
app.use(handler.getMiddleware());
app.listen(3000, () =>
console.log(`Azure WebPubSub Upstream ready at http://localhost:3000${handler.path}`)
);
Egyéni eseménykezelő elérési út beállítása
const express = require("express");
const { WebPubSubEventHandler } = require("@azure/web-pubsub-express");
const handler = new WebPubSubEventHandler("chat", {
path: "customPath1"
});
const app = express();
app.use(handler.getMiddleware());
app.listen(3000, () =>
// Azure WebPubSub Upstream ready at http://localhost:3000/customPath1
console.log(`Azure WebPubSub Upstream ready at http://localhost:3000${handler.path}`)
);
Kapcsolat állapotának beállítása és olvasása
const express = require("express");
const { WebPubSubEventHandler } = require("@azure/web-pubsub-express");
const handler = new WebPubSubEventHandler("chat", {
handleConnect(req, res) {
// You can set the state for the connection, it lasts throughout the lifetime of the connection
res.setState("calledTime", 1);
res.success();
},
handleUserEvent(req, res) {
var calledTime = req.context.states.calledTime++;
console.log(calledTime);
// You can also set the state here
res.setState("calledTime", calledTime);
res.success();
}
});
const app = express();
app.use(handler.getMiddleware());
app.listen(3000, () =>
console.log(`Azure WebPubSub Upstream ready at http://localhost:3000${handler.path}`)
);
Hibaelhárítás
Naplók engedélyezése
A kódtár használatakor a következő környezeti változót állíthatja be a hibakeresési naplók lekéréséhez.
- Hibakeresési naplók lekérése a SignalR ügyfélkódtárból
export AZURE_LOG_LEVEL=verbose
A naplók engedélyezésére vonatkozó részletesebb útmutatásért tekintse meg a @azure/logger csomag dokumentációt.
Élő nyomkövetés
Az élő forgalom megtekintéséhez használja a Web PubSub szolgáltatásportál élő nyomkövetését .
Következő lépések
A kódtár használatára vonatkozó részletes példákért tekintse meg a mintakönyvtárat.
Közreműködés
Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód összeállításáról és teszteléséről.
Kapcsolódó projektek
Azure SDK for JavaScript