Nodejs: установить highWaterMark объекта сокета
Можно ли установить highWaterMark объекта сокета после его создания:
var http = require('http');
var server = http.createServer();
server.on('upgrade', function(req, socket, head) {
socket.on('data', function(chunk) {
var frame = new WebSocketFrame(chunk);
// skip invalid frames
if (!frame.isValid()) return;
// if the length in the head is unequal to the chunk
// node has maybe split it
if (chunk.length != WebSocketFrame.getLength()) {
socket.once('data', listenOnMissingChunks);
});
});
});
function listenOnMissingChunks(chunk, frame) {
frame.addChunkToPayload(chunk);
if (WebSocketFrame.getLength()) {
// if still corrupted listen once more
} else {
// else proceed
}
}
Приведенный выше пример кода не работает. Но как мне сделать это вместо этого?
Дальнейшее объяснение: когда я получаю большие фреймы WebSocket, они разделяются на несколько событий данных. Это затрудняет синтаксический анализ кадров, потому что я не знаю, является ли это разделенным или поврежденным кадром.