【发布时间】:2021-09-28 00:22:00
【问题描述】:
我正在按照指南尝试使用 ws 和 Express 4 以及 NodeJS 和 TypeScript 来设置 WebSocket.Server。问题是我正在关注的指南(在这里找到:https://morioh.com/p/3b302785a62f)似乎已经过时了,或者因为提供的代码不起作用。
我正在尝试使用扩展的 websocket 对象来跟踪活动连接。它看起来像这样:
interface ExtWebSocket extends WebSocket {
isAlive: boolean;
}
现在这样做,如教程中的代码所示,我收到一个错误:
setInterval(() => {
wss.clients.forEach((ws: ExtWebSocket) => {
if (!ws.isAlive) return ws.terminate();
ws.isAlive = false;
ws.ping(null, false, true);
});
}, 10000);
错误指出我无法在forEach 循环中使用 ExtWebSocket 但我不知道为什么?
【问题讨论】:
-
可能是因为根据类型定义
wss.clients包含WebSocket对象,而不是ExtWebSocket对象,因此 TypeScript 不会让您尝试在已声明的内容上使用ExtWebSocket属性/方法作为WebSocket对象。 -
我只是不明白我链接的帖子是如何做到的(它在页面底部)。
标签: node.js typescript websocket