猿问

nodejs怎么通过TCP接受到数据,然后通过socket.io发给前端

主要是想TCP接收到数据后,直接通过websocket发给前端,试了发给前端的是undefind,不知道哪里出问题


var app = require('http').createServer()

var io = require('socket.io')(app)

var net = require('net')


app.listen(5000)



net.createServer(function(so){

    so.on('data',function(data){

        console.log('got:',data.toString());

        var text = JSON.parse(data.toString());

        var tem = parseInt(text.tem)

        // console.log(tem)

        io.on('connection', function(socket){ 

            console.log()     

            socket.emit('news', { tem });

            socket.on('my other event', function (data) {

                console.log(data);

               })

        })

    })

    so.on('end',function(data){

        console.log('end');

    });

    so.write('Ready to receive your message!')

     

}).listen(4001);



    

        

郎朗坤
浏览 451回答 1
1回答

忽然笑

很多问题TCP是字节流,你收到data的时候不一定是完整的JSON。正常应该拆包,处理粘包,双方约定编码等等。如果恰巧JSON短,解析成功了,那么每次收到TCP数据你都会设置connection事件的回调。这样浪费如果前端链接了,但是tcp没有发送数据,就不会绑定connection事件根本不知道你前端代码。前端得到undefined不一定全部都是后端的错吧。这个问题一定会石沉大海,太笼统,潜在问题比较多,信息不全
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答