| name | websocket |
| description | WebSocket 使用规范. 需要在前端订阅后端事件通知时使用 |
| compatibility | Vue 3 + Deno 后端 |
| metadata | {"version":"1.0"} |
WebSocket 使用规范
架构
uni/src/compositions/websocket.ts (移动端客户端)
├── subscribe(topic, callback) - 订阅主题
└── unSubscribe(topic, callback) - 取消订阅
src/compositions/websocket.ts (PC端客户端)
├── subscribe(topic, callback) - 订阅主题
└── unSubscribe(topic, callback) - 取消订阅
deno 后端: lib/websocket
└── websocket_dao.publish(topic, payload) - 推送消息到前端
使用示例
前端订阅 (Vue/TS)
import {
subscribe,
unSubscribe,
} from "@/compositions/websocket.ts";
try {
await subscribe("newBookingOrder", (data) => {
});
} catch (err) {
console.error("subscribe newBookingOrder failed", err);
}
try {
await unSubscribe("newBookingOrder", callback);
} catch (err) {
console.error("unSubscribe newBookingOrder failed", err);
}
后端发布 (Deno)
import { publish } from "/lib/websocket/websocket.dao.ts";
await publish(
"newBookingOrder",
{
booking_order_id: id.toString(),
}
);