我正在運行帶有ws
的WebSocket服務器,並試圖根據它們是否是JSON來拆分傳入消息。將偵聽器添加到對象原型
function determineJSON(m) {
try { return ['json', JSON.parse(m)] }
catch (err) { return ['not-json', m] }
}
wss.on('connection', ws => {
ws.on('message', m => {
// Emit to 'json' and 'not-json' as appropriate
if (ws.listenerCount('json') + ws.listenerCount('not-json') > 0) {
ws.emit(...determineJSON(m))
}
})
.on('json', j => { ... })
.on('not-json', m => { ... })
})
代碼工作很好,但我不知道我怎麼會.on('message', ...)
監聽器添加到WS
類,讓所有新WS
對象將有它。我試過WS.prototype.on('message', ...)
,但這似乎沒有做任何事情。
創建一個子類並將其添加到構造函數中。 – Bergi