PDA

View Full Version : مشکل در تعداد بالای کلاینت



mfaridi
جمعه 23 بهمن 1394, 11:34 صبح
سلام من یه سورس ساده نوشتم تو ند که تقریلا کار خاصی رو انجام نمیده ولی وقتی تقریبا تعداد کلاینت به بالای ۱۰۰۰ میرسه همچی اروری میگیرم
C:\Documents and Settings\Administrator\Desktop\node\node_modules\s ocket.io\node_modules\engine.io\node_modules\ws\li b\Receiver.js:247
if (!this.state.fragmentedOperation) this.unfragmentedBufferPool.reset(true);
^


TypeError: Cannot read property 'fragmentedOperation' of null
at Receiver.endPacket (C:\Documents and Settings\Administrator\Desktop\node\
node_modules\socket.io\node_modules\engine.io\node _modules\ws\lib\Receiver.js:24
7:18)
at Receiver.opcodes.1.finish (C:\Documents and Settings\Administrator\Deskto
p\node\node_modules\socket.io\node_modules\engine. io\node_modules\ws\lib\Receive
r.js:483:12)
at Receiver.<anonymous> (C:\Documents and Settings\Administrator\Desktop\nod
e\node_modules\socket.io\node_modules\engine.io\no de_modules\ws\lib\Receiver.js:
451:33)
at Receiver.add (C:\Documents and Settings\Administrator\Desktop\node\node_m
odules\socket.io\node_modules\engine.io\node_modul es\ws\lib\Receiver.js:95:24)
at Socket.realHandler (C:\Documents and Settings\Administrator\Desktop\node\
node_modules\socket.io\node_modules\engine.io\node _modules\ws\lib\WebSocket.js:8
00:20)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at readableAddChunk (_stream_readable.js:147:16)
at Socket.Readable.push (_stream_readable.js:111:10)
at TCP.onread (net.js:523:20)
در فایل نود هم چیزی خاصی وجود نداره یه کانکشن یه دیسکانکت و یه متغیری که تعداد کلاینت رو برسی میکنه همین

behi1ty
شنبه 24 بهمن 1394, 10:35 صبح
سلام من یه سورس ساده نوشتم تو ند که تقریلا کار خاصی رو انجام نمیده ولی وقتی تقریبا تعداد کلاینت به بالای ۱۰۰۰ میرسه همچی اروری میگیرم
C:\Documents and Settings\Administrator\Desktop\node\node_modules\s ocket.io\node_modules\engine.io\node_modules\ws\li b\Receiver.js:247
if (!this.state.fragmentedOperation) this.unfragmentedBufferPool.reset(true);
^


TypeError: Cannot read property 'fragmentedOperation' of null
at Receiver.endPacket (C:\Documents and Settings\Administrator\Desktop\node\
node_modules\socket.io\node_modules\engine.io\node _modules\ws\lib\Receiver.js:24
7:18)
at Receiver.opcodes.1.finish (C:\Documents and Settings\Administrator\Deskto
p\node\node_modules\socket.io\node_modules\engine. io\node_modules\ws\lib\Receive
r.js:483:12)
at Receiver.<anonymous> (C:\Documents and Settings\Administrator\Desktop\nod
e\node_modules\socket.io\node_modules\engine.io\no de_modules\ws\lib\Receiver.js:
451:33)
at Receiver.add (C:\Documents and Settings\Administrator\Desktop\node\node_m
odules\socket.io\node_modules\engine.io\node_modul es\ws\lib\Receiver.js:95:24)
at Socket.realHandler (C:\Documents and Settings\Administrator\Desktop\node\
node_modules\socket.io\node_modules\engine.io\node _modules\ws\lib\WebSocket.js:8
00:20)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at readableAddChunk (_stream_readable.js:147:16)
at Socket.Readable.push (_stream_readable.js:111:10)
at TCP.onread (net.js:523:20)
در فایل نود هم چیزی خاصی وجود نداره یه کانکشن یه دیسکانکت و یه متغیری که تعداد کلاینت رو برسی میکنه همین


سلام دوست عزیز، 1000 تا کاربر اصلا برای نود عدد بالایی نیست که بخواد خطا دهد، لطفا کد نوشته شده را بذارید تا بتوان بررسی کرد.

mfaridi
دوشنبه 26 بهمن 1394, 08:10 صبح
سلام دوست عزیز، 1000 تا کاربر اصلا برای نود عدد بالایی نیست که بخواد خطا دهد، لطفا کد نوشته شده را بذارید تا بتوان بررسی کرد.
var app = require('express')();var http = require('http').Server(app);
var io = require('socket.io')(http);
var numuser = 0;
var max = 0;
app.get('/', function(req, res){
res.sendfile('index.html');
});
io.on('connection',function(socket){
numuser ++;
if(max < numuser){
max = numuser
}
socket.on('disconnect',function(){
numuser --;
});
});
http.listen(3333,function(){
console.log('server listening on port 3333');

})

behi1ty
سه شنبه 27 بهمن 1394, 05:18 صبح
var app = require('express')();var http = require('http').Server(app);
var io = require('socket.io')(http);
var numuser = 0;
var max = 0;
app.get('/', function(req, res){
res.sendfile('index.html');
});
io.on('connection',function(socket){
numuser ++;
if(max < numuser){
max = numuser
}
socket.on('disconnect',function(){
numuser --;
});
});
http.listen(3333,function(){
console.log('server listening on port 3333');

})

سلام
دوست عزیز منطق کد شما جوری هست که اگر 200000 هزار نفر هم وصل بشن و کسی خارج نشه درست کار می کنه، اما اگر به ازای هر کی که کانکت بشه یه نفر خارج بشه منطق کد جور در نمیاد(یعنی مقدار max تغییر نمی کند)، اما این که خطا می دهد کمی عجیب است، لطفا اگر امکان داره کد کلاینت را هم بذارید تا بشه خطا را پیدا کنیم.

mfaridi
سه شنبه 27 بهمن 1394, 14:34 عصر
سلام
دوست عزیز منطق کد شما جوری هست که اگر 200000 هزار نفر هم وصل بشن و کسی خارج نشه درست کار می کنه، اما اگر به ازای هر کی که کانکت بشه یه نفر خارج بشه منطق کد جور در نمیاد(یعنی مقدار max تغییر نمی کند)، اما این که خطا می دهد کمی عجیب است، لطفا اگر امکان داره کد کلاینت را هم بذارید تا بشه خطا را پیدا کنیم.
در کلاینت چیز خواصی وجود نداره فقط تعداد کاربر ها رو میشموره همین . من احتمال میدم سیستم کشش نداره چون رم ۵۱۲ هست و رم داره کم میاره

behi1ty
چهارشنبه 28 بهمن 1394, 03:59 صبح
در کلاینت چیز خواصی وجود نداره فقط تعداد کاربر ها رو میشموره همین . من احتمال میدم سیستم کشش نداره چون رم ۵۱۲ هست و رم داره کم میاره

خوب OS شما چی هست و موقع اجرای برنامه چقدر رم خالی وجود دارد، چون خود 512MB برای NODEJS یک عدد بسیار بزرگی است و اگر منظور شما این است که 512MB زمان اجرای برنامه رم خالی دارید، باید عرض کنم مشکل از این نیست

mfaridi
چهارشنبه 28 بهمن 1394, 08:56 صبح
خوب OS شما چی هست و موقع اجرای برنامه چقدر رم خالی وجود دارد، چون خود 512MB برای NODEJS یک عدد بسیار بزرگی است و اگر منظور شما این است که 512MB زمان اجرای برنامه رم خالی دارید، باید عرض کنم مشکل از این نیست
ویندوز سرور ۲۰۰۳
کل رم ۵۱۲
همین حال نزدیک به ۱۰۰۰ کلاینت به سرور نود وصل هستن و چیزی هدود ۸۰ مگ رم مصرف میکنن و 153 مگ هم رم خالی در سیستم موجود هست
مصرف cpu برای نود هم ۲۸ درصد هستش

behi1ty
چهارشنبه 28 بهمن 1394, 09:10 صبح
ویندوز سرور ۲۰۰۳
کل رم ۵۱۲
همین حال نزدیک به ۱۰۰۰ کلاینت به سرور نود وصل هستن و چیزی هدود ۸۰ مگ رم مصرف میکنن و 153 مگ هم رم خالی در سیستم موجود هست
مصرف cpu برای نود هم ۲۸ درصد هستش

دوست عزیز لطفا کل پروژه و برام میل کن تا بررسی کنم
و اینکه با چه مکانیزمی شما 1000 تا کاربر و پیاده سازی کردی؟

mfaridi
چهارشنبه 06 مرداد 1395, 13:52 عصر
سلام مشکل من از باگ خود سوکت بود که بعد اپدیت مشکل رم کاملا حل شد