nodejs 爬弹幕

    技术2025-08-25  15

    var websocket = require(‘ws’); var ws = new websocket(‘wss://danmuproxy.douyu.com:8506/’) ws.on(‘error’, function(err) { console.error(‘Catched Websocket Error’, err); });

    ws.on(‘close’, function() { console.warn(‘Websocket Connection closed’); });

    ws.on(‘open’, function() { var str = ‘type@=loginreq/roomid@=74751/ver@=20190610/’ + ‘\0’ var buf = message(str) ws.send(buf) var str = ‘type@=joingroup/rid@=74751/gid@=-9999/’ + ‘\0’ var buf = message(str) ws.send(buf) setInterval(() => { ws.send(message(“type@=mrkl/” + ‘\0’)) }, 45000); });

    ws.on(‘message’, function(msg) { console.log(‘Received message:’, msg.toString());

    });

    function message(str) { var len = str.length const buf = new Buffer(len + 12) buf.writeUInt16LE(len + 8, 0) buf.writeUInt16LE(len + 8, 4) buf.writeUInt16BE(45314, 8)

    //8位和16位只有长度限制 8位是1111 1111 (255) 16位就是 16个1 buf.write(str, 12) return buf

    }

    Processed: 0.009, SQL: 9