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);


    
        
阅读 5.1k
1 个回答

很多问题

  1. TCP是字节流,你收到data的时候不一定是完整的JSON。正常应该拆包,处理粘包,双方约定编码等等。

  2. 如果恰巧JSON短,解析成功了,那么每次收到TCP数据你都会设置connection事件的回调。这样浪费

  3. 如果前端链接了,但是tcp没有发送数据,就不会绑定connection事件

  4. 根本不知道你前端代码。前端得到undefined不一定全部都是后端的错吧。

这个问题一定会石沉大海,太笼统,潜在问题比较多,信息不全

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题