Búsqueda de sitios web

node.js - alternativa a express-ws en TypeScript


He estado buscando durante unos días, pero todavía no he encontrado ninguna alternativa ni ayuda para escribir una declaración de TypeScript para ello, ya que también lo intenté.

https://www.npmjs.com/package/express-ws

Lo importante es que funcione con cualquier otra ruta en Express. Autenticación, roles y parámetros de ruta.

Respuesta #1

Las definiciones de tipos para express-ws han sido creadas.

Las pruebas muestran cómo usarlo:

import expressWs from 'express-ws';
const { app, getWss, applyTo } = expressWs(express());

O :

const app = expressWs(express()).app;

Entonces, por ejemplo, al declarar rutas en lugar de escribir:

const myRoutes = function(app: Express) {...}

Necesitas especificar el tipo express-ws:

import expressWs from 'express-ws';
const myRoutes = function(app: expressWs.Application) {...}

Respuesta #2

Gracias Derek Hill y Normunds Kalnberzins

Trabajar con enrutadores es mejor

Primero importa express-ws

import expressWs from 'express-ws';

Para usar el método ws, necesitas fortalecer express (lo entiendo de esta manera)

const { app, getWss, applyTo } = expressWs(express());

después de eso express.Router contiene el método ws, pero el tipo de TypeScript es incorrecto, solo necesitas convertir el tipo.

const router = express.Router() as expressWs.Router;

Definir la lógica de enrutamiento

router.ws('/echo', (ws, req) => {
    ws.on('message', (msg: String) => {
        ws.send(msg);
    });
});

Finalmente agrega router a la app de express

app.use("/ws-stuff", router);

Artículos relacionados