مدیریت خطا در ارتباط سوکت node.js
چهارشنبه, ۲ تیر ۱۳۹۵، ۱۰:۳۹ ب.ظ
معمولا زمانی که ارتباط یک کلاینت قطع میشه سرور به مشگل بر میخوره برای مدیریت ان و حذف کلاینت قط شده از کد زیر استفاده می کنیم
socket.on('error',function (err) { //console.log("yyyy"); console.log('Connection %s error: %s', socket.remoteAddress,socket.remotePort , err.message); clients.splice(clients.indexOf(socket), 1); cl--; })
کد کامل سرور
// Load the TCP Library net = require('net'); var HOST = '127.0.0.1'; // Keep track of the chat clients var clients = []; var man=0; var cl=0; // Start a TCP Server net.createServer(function (socket) { socket.name = socket.remoteAddress + ":" + socket.remotePort clients.push(socket); // socket.write("Welcome Client"); cl++; console.log("Run:" + man + " \n"); socket.on('data', function (data) { console.log("Joine \n"); }); socket.on('error',function (err) { //console.log("yyyy"); console.log('Connection %s error: %s', socket.remoteAddress,socket.remotePort , err.message); clients.splice(clients.indexOf(socket), 1); cl--; }) }).listen(5000, HOST); function broadcast(message, sender) { clients.forEach(function (client) { // Don't want to send it to sender if (client === sender) return; client.write(message); }) }; // Put a friendly message on the terminal of the server. console.log("Chat server running at port 5000\n"); setInterval(function () { broadcast("Runed:" + man.toString() + " Tedad Client Online:" + cl.toString()); man++; }, 8000);
در کد بالا سرور تقریبا پایدارتری به وجود اوردیم
۹۵/۰۴/۰۲