nodejs用websocket.io编写一个服务器响应耗时计算的简单程序,为何此处没有打印出来呢?

在做书上的demo,websocket本身的bug我已按照教程修复,请问下面这里是什么问题而没有执行呢?因为还在学着实现demo,用的是老书,使用的是express 2系列的版本而不是最新版,不过我猜应该和express没关系。

server.js:

    var express=require('express'),wsio=require('websocket.io');
    
    var app=express.createServer();
    
    var ws=wsio.attach(app);
    
    app.use(express.static('public'));
    
    ws.on('connection',function(socket){
        socket.on('message',function(msg){
            console.log(' \033[96mgot:\033[39m '+msg);
            socket.send('pong');
        });

});

app.listen(3000);

index.html放在当前目录的public文件夹下:

<!doctype html>
<html>
  <head>
    <title>WebSocket echo test</title>
    <script>
      var lastMessage;

      window.onload = function () {
        // create socket
        var ws = new WebSocket('ws://localhost:3000');
        ws.onopen = function () {
          ping();
        }
        ws.onmessage = function (ev) {
          **console.log(' got: '+ev.data);**
          document.getElementById('latency').innerHTML = new Date - lastMessage;
        }

        function ping(){
          lastMessage=+new Date;
          ws.send('ping');
        }
      }
    </script>
  </head>
  <body>
    <h1>WebSocket Echo</h1>
    <h2>Latency: <span id="latency"></span>ms</h2>
  </body>
</html>

星号里面的console语句为何没有在终端打印出来 got: pong 呢?而server.js里面的got: ping则打印出来了

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