WebSocket 端点
编辑此页面通过在启动配置中指定 ws 处理程序文件可以实现 WebSocket 端点。请注意,此功能在Nitro 服务器上是实验性的,其配置可能在未来的SolidStart 版本中发生变化。请谨慎使用。
import { defineConfig } from "@solidjs/start/config";
export default defineConfig({ server: { experimental: { websocket: true, }, },}).addRouter({ name: "ws", type: "http", handler: "./src/ws.ts", target: "server", base: "/ws",});
在 ws 文件中,你可以导出一个 eventHandler 函数来管理 WebSocket 的连接和事件:
import { eventHandler } from "vinxi/http";
export default eventHandler({ handler() {}, websocket: { async open(peer) { console.log("open", peer.id, peer.url); }, async message(peer, msg) { const message = msg.text(); console.log("msg", peer.id, peer.url, message); }, async close(peer, details) { console.log("close", peer.id, peer.url); }, async error(peer, error) { console.log("error", peer.id, peer.url, error); }, },});