TDArray 2016-12-30 03:09 采纳率: 0%
浏览 684

【新手】关于socket.io(关联websocket)

直接上代码(有点乱,下面有我的直接描述):

服务器端:

  io.sockets.on('connection', function (socketIO) {

      // 测试用,连接成功
      socketIO.emit("test","your websocket has connected");
      //返回数据使用,控制C服务器
      socketIO.on('fromWebClient', function (webClientData) {

      });
      // 从C服务器接收数据
      nodeServer.on('data', function (data) {
        if(data.readUInt8(0)==170){
          sbuf.writeUInt32LE(len,0);//写入包长
          exBuffer.put(sbuf);
          exBuffer.put(data);

        }
        else{
          exBuffer.put(data);
        }
        console.log('nodeServer'+data.length);
      });
    //当nodeServer收到完整的数据包时
      exBuffer.on('data', function(buffer) {
        console.log('>> nodeServer receive data.length:'+buffer.length);
        //console.log(buffer);
        //console.log(buffer.readInt32LE(826));
        haha++;
        console.log(haha);

        var useData=byteArrayUntil.getUseJson(buffer,offset);
        console.log(useData.hz.length);
        //向客户端发送json数据
        socketIO.emit('pushToWebClient',useData);

      });

客户端(简化了的):

  socket.on('pushToWebClient', function (useData) {
    i++;
    console.log(i);
    console.log(useData);
    processingData(useData);
});

是这样的,服务器接收tcp服务器的数据后,通过socket.io传给网页显示。 我的启动顺序,先启动tcp服务器(),然后nodejs写的服务器,再打开网页,接着发送数据。这样才不会出错。。。

【问题一】:我想一直开着nodejs服务器,然后启动tcp服务器后,打开网页就能接受到数据显示。应该怎么改?(我知道要把nodeServer拿出来,但是一拿出来

 //向客户端发送json数据
socketIO.emit('pushToWebClient',useData);

这一句不能独立用,而且我兼顾第二个问题没有解决)

【问题二】:目前我第一次打开网页,发送一次数据后,接受数据仅显示一次;关闭网页重新打开,发送数据后,接受数据显示4次,再重复关闭打开,接收数据显示9次;直接导致如果重复打开关闭,网页显示刷新就会很多,导致cpu占用很高。这是为什么呢?

  • 写回答

1条回答 默认 最新

  • ha_lydms 后端领域优质创作者 2023-03-29 22:37
    关注

    估计是资源占用了。之前的链接或者IO资源没有释放,可以尝试释放。要不就采用连接池,进行统一的链接管理。

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码