我已经用 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);