I’ve been on the TypeScript gitter and this is the best we’ve come up with:
import * as express from 'express';
import * as http from 'http';
import * as WebSocket from 'ws';
const app = express();
const server = http.createServer(app);
const wss = new WebSocket.Server({ server });
// ******* THIS IS THE IMPORTANT BIT ********
interface WebSocketWithStatus extends WebSocket {
isAlive?: boolean;
}
function heartbeat(this: WebSocketWithStatus) {
this.isAlive = true;
}
function onConnection(ws: WebSocketWithStatus) {
ws.isAlive = true;
ws.on('pong', heartbeat);
}
wss.on('connection', onConnection);
Beats (ws as any).isAlve but it feels like there should be something better.
