Pat*_*Pat 3 websocket node.js typescript
我已经搜索了几天,但仍然没有找到任何替代方法或帮助为它编写 TypeScript 声明,因为我也尝试过。
https://www.npmjs.com/package/express-ws
重要的是它适用于 express 中的任何其他路由。身份验证、角色和路径参数。
Der*_*ill 10
现在已经创建了 express-ws 的类型。
该测试展示了如何使用它:
import expressWs from 'express-ws';
const { app, getWss, applyTo } = expressWs(express());
Run Code Online (Sandbox Code Playgroud)
或者:
const app = expressWs(express()).app;
Run Code Online (Sandbox Code Playgroud)
然后例如在声明路由而不是编写时:
const myRoutes = function(app: Express) {...}
Run Code Online (Sandbox Code Playgroud)
您需要指定 express-ws 类型:
import expressWs from 'express-ws';
const myRoutes = function(app: expressWs.Application) {...}
Run Code Online (Sandbox Code Playgroud)
小智 6
感谢Derek Hill和Normunds Kalnberzins
配合路由器使用效果更好
首先导入express-ws
import expressWs from 'express-ws';
Run Code Online (Sandbox Code Playgroud)
使用ws方法需要加强express(我是这样理解的)
const { app, getWss, applyTo } = expressWs(express());
Run Code Online (Sandbox Code Playgroud)
之后
express.Router包含了ws方法,但是typescript的类型不对,只需要转换类型即可。
const router = express.Router() as expressWs.Router;
Run Code Online (Sandbox Code Playgroud)
定义路由逻辑
router.ws('/echo', (ws, req) => {
ws.on('message', (msg: String) => {
ws.send(msg);
});
});
Run Code Online (Sandbox Code Playgroud)
最后添加router到快递app
app.use("/ws-stuff", router);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |