Nodejs: Defina highWaterMark do objeto de soquete
é possível definir o highWaterMark de um objeto de soquete depois que ele foi criado:
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
}
}
O exemplo de código acima não funciona. Mas como faço isso em vez disso?
Outras explicações: Quando recebo quadros WebSocket grandes, eles são divididos em vários eventos de dados. Isso dificulta a análise dos quadros porque não sei se esse é um quadro dividido ou corrompido.