مشکل در تعداد بالای کلاینت
سلام من یه سورس ساده نوشتم تو ند که تقریلا کار خاصی رو انجام نمیده ولی وقتی تقریبا تعداد کلاینت به بالای ۱۰۰۰ میرسه همچی اروری میگیرم
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)
در فایل نود هم چیزی خاصی وجود نداره یه کانکشن یه دیسکانکت و یه متغیری که تعداد کلاینت رو برسی میکنه همین
نقل قول: مشکل در تعداد بالای کلاینت
نقل قول:
نوشته شده توسط
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)
در فایل نود هم چیزی خاصی وجود نداره یه کانکشن یه دیسکانکت و یه متغیری که تعداد کلاینت رو برسی میکنه همین
سلام دوست عزیز، 1000 تا کاربر اصلا برای نود عدد بالایی نیست که بخواد خطا دهد، لطفا کد نوشته شده را بذارید تا بتوان بررسی کرد.
نقل قول: مشکل در تعداد بالای کلاینت
نقل قول:
نوشته شده توسط
behi1ty
سلام دوست عزیز، 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');
})
نقل قول: مشکل در تعداد بالای کلاینت
نقل قول:
نوشته شده توسط
mfaridi
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 تغییر نمی کند)، اما این که خطا می دهد کمی عجیب است، لطفا اگر امکان داره کد کلاینت را هم بذارید تا بشه خطا را پیدا کنیم.
نقل قول: مشکل در تعداد بالای کلاینت
نقل قول:
نوشته شده توسط
behi1ty
سلام
دوست عزیز منطق کد شما جوری هست که اگر 200000 هزار نفر هم وصل بشن و کسی خارج نشه درست کار می کنه، اما اگر به ازای هر کی که کانکت بشه یه نفر خارج بشه منطق کد جور در نمیاد(یعنی مقدار max تغییر نمی کند)، اما این که خطا می دهد کمی عجیب است، لطفا اگر امکان داره کد کلاینت را هم بذارید تا بشه خطا را پیدا کنیم.
در کلاینت چیز خواصی وجود نداره فقط تعداد کاربر ها رو میشموره همین . من احتمال میدم سیستم کشش نداره چون رم ۵۱۲ هست و رم داره کم میاره
نقل قول: مشکل در تعداد بالای کلاینت
نقل قول:
نوشته شده توسط
mfaridi
در کلاینت چیز خواصی وجود نداره فقط تعداد کاربر ها رو میشموره همین . من احتمال میدم سیستم کشش نداره چون رم ۵۱۲ هست و رم داره کم میاره
خوب OS شما چی هست و موقع اجرای برنامه چقدر رم خالی وجود دارد، چون خود 512MB برای NODEJS یک عدد بسیار بزرگی است و اگر منظور شما این است که 512MB زمان اجرای برنامه رم خالی دارید، باید عرض کنم مشکل از این نیست
نقل قول: مشکل در تعداد بالای کلاینت
نقل قول:
نوشته شده توسط
behi1ty
خوب OS شما چی هست و موقع اجرای برنامه چقدر رم خالی وجود دارد، چون خود 512MB برای NODEJS یک عدد بسیار بزرگی است و اگر منظور شما این است که 512MB زمان اجرای برنامه رم خالی دارید، باید عرض کنم مشکل از این نیست
ویندوز سرور ۲۰۰۳
کل رم ۵۱۲
همین حال نزدیک به ۱۰۰۰ کلاینت به سرور نود وصل هستن و چیزی هدود ۸۰ مگ رم مصرف میکنن و 153 مگ هم رم خالی در سیستم موجود هست
مصرف cpu برای نود هم ۲۸ درصد هستش
نقل قول: مشکل در تعداد بالای کلاینت
نقل قول:
نوشته شده توسط
mfaridi
ویندوز سرور ۲۰۰۳
کل رم ۵۱۲
همین حال نزدیک به ۱۰۰۰ کلاینت به سرور نود وصل هستن و چیزی هدود ۸۰ مگ رم مصرف میکنن و 153 مگ هم رم خالی در سیستم موجود هست
مصرف cpu برای نود هم ۲۸ درصد هستش
دوست عزیز لطفا کل پروژه و برام میل کن تا بررسی کنم
و اینکه با چه مکانیزمی شما 1000 تا کاربر و پیاده سازی کردی؟
نقل قول: مشکل در تعداد بالای کلاینت
سلام مشکل من از باگ خود سوکت بود که بعد اپدیت مشکل رم کاملا حل شد