# زبان های اسکریپتی > JavaScript و Framework های مبتنی بر آن > Node.js >  مشکل در تعداد بالای کلاینت

## mfaridi

سلام من یه سورس ساده نوشتم تو ند که تقریلا کار خاصی رو انجام نمیده ولی وقتی تقریبا تعداد کلاینت به بالای ۱۰۰۰ میرسه همچی اروری میگیرم
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

> سلام من یه سورس ساده نوشتم تو ند که تقریلا کار خاصی رو انجام نمیده ولی وقتی تقریبا تعداد کلاینت به بالای ۱۰۰۰ میرسه همچی اروری میگیرم
> 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
> ...



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

----------


## mfaridi

> سلام دوست عزیز، 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

> 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 ++;
> ...


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

----------


## mfaridi

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


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

----------


## behi1ty

> در کلاینت چیز خواصی وجود نداره فقط تعداد کاربر ها رو میشموره همین . من احتمال میدم سیستم کشش نداره چون رم ۵۱۲ هست و  رم داره کم میاره


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

----------


## mfaridi

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


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

----------


## behi1ty

> ویندوز سرور ۲۰۰۳
> کل رم ۵۱۲
> همین حال نزدیک به ۱۰۰۰ کلاینت به سرور نود وصل هستن و چیزی هدود ۸۰ مگ رم مصرف میکنن و 153 مگ هم رم خالی در سیستم موجود هست 
> مصرف cpu  برای نود هم ۲۸ درصد هستش


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

----------


## mfaridi

سلام مشکل من از باگ خود سوکت بود که بعد اپدیت مشکل رم کاملا حل شد

----------

