socket.io 客户端自动重新连接服务器

时间:2021-03-08 09:50:57

标签: node.js socket.io

我已经用 node.js http 服务器实现了 socket.io。服务器将实时数据推送到客户端。我注意到一个问题,当服务器重新启动时,客户端不会自动获取数据,这意味着它不会自动与服务器重新连接。请提出解决方案。我的客户端代码如下

客户端 index.html

<script>
    var socket = io.connect('http://localhost');
    socket.on('field', function (data) {
        console.log(data); });
</script>

server.js

 var app = require('http').createServer(handler)
      , io = require('socket.io').listen(app)
        , fs = require('fs')
    app.listen(8070);
    var mysocket = 0;
    
    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) {
      console.log('index.html connected');
      mysocket = socket;
    });
    
    //udp server on 41181
    var dgram = require("dgram");
    var server = dgram.createSocket("udp4");
    server.on("message", function (msg, rinfo) {
        console.log("msg: " + msg);
             if (mysocket != 0){
                 mysocket.emit('field', "" + msg);
                 }
    });
    
    server.on("listening", function () {
      var address = server.address();
      console.log("udp server listening " + address.address + ":" +      
      address.port);
    });
    server.bind(41181);

0 个答案:

没有答案