58
Error: The connection to <websocket> was interrupted while the page was loading.
Source File: localhost/socket.io/node_modules/socket.io-client/dist/socket.io.js
Line: 2371

私はsocket.ioを初めて使用し、これを検索しようとしましたが、答えが得られませんでした。

Firefoxでページを更新すると、Websocketが中断されます。そのため、サーバー側はクライアントの承認を待機しています。

コードは次のとおりです: server.js

var app = require('http').createServer(handler),
  io = require('socket.io').listen(app),
  fs = require('fs')

app.listen(8080);

function handler(req, res) {
  fs.readFile(__dirname + '/index.html',
    function (err, data) {
      if (err) {
        res.writeHead(500);
        return res.end('Error loading index.html');
      }
      res.writeHead(200);
      res.end(data);
    });
}

io.sockets.on('connection', function (socket) {
  socket.emit('news', {
    hello: 'world'
  });
  socket.on('my other event', function (data) {
    //alert(JSON.stringify(data));  
    console.log(data);
  });

});

index.html

<script src="node_modules/socket.io-client/dist/socket.io.js"></script>
<script>
  var socket = io.connect('http://localhost:8080');

  socket.on('news', function (data) {
    alert(JSON.stringify(data));
    console.log(data);
    socket.emit('my next event', { my: 'data' });
  });

</script>
4

6 に答える 6

49

これは、開いている WebSocket を閉じていないために発生します。

このコードはこのエラーを取り除きます:

$(window).on('beforeunload', function(){
    socket.close();
});
于 2014-05-21T13:15:00.193 に答える
1

これはアプリケーションにどのような影響を与えますか? 私の推測では、コンソールにエラーが表示されるのは良くないということです。

ここでの問題は、Firefox がこのエラーをログに記録しているのを見て、それに対してできることは何もないということです。try...catchブロックまたはwebsocket.onerror/を使用してこのエラーをキャプチャすることはできませんwebsocket.onclose

参照: WebSocket 接続の中断をキャッチするにはどうすればよいですか?

関連している:

于 2013-01-03T17:58:38.577 に答える