نمایش نتایج 1 تا 10 از 10

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

  1. #1

    با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    سلام...
    سوال اصلی...
    توی چت چطور طرف دوم بفهمه که یه نفر یه چت رو با اون باز کرده و یه متنی ارسال کرده؟
    توضیحات...
    تو حالت عادی تا وقتی کاربری با کانکت شدن از طریق port مربوطه که تو فایل سمت سرور (مثلا app.js) ست شده به سرور وصل نشه (در سوکت و node.js) سوکت اون طرف رو نداریم حالا این قضیه وقتی پیش میاد که یه نفر چت رو با یه نفر دیگه باز کنه که نفر دوم کاری نکرده و سوکتش رو هم نداریم که بتونیم بهش چیزی بگیم در حقیقت هیچ دسترسی نداریم بهش...
    حالا چطور به این نفر دوم بفهمونیم که آقا یه نفر چت رو باهات باز کرده و متنی هم ارسال کرده؟؟
    یه روشش که به ذهن خودم میرسه استفاده از set_timeout هست که مثلا کاربر1 که با کاربر2 چت رو ایجاد میکنه تو یه جدول که یه سطرش مربوط به کاربر2 هست یه چیزی درج بشه و هر 3 ثانیه جدول مربوط به کاربر2 با $.ajax چک بشه و اگر مقداری داشت بفهمیم که بله یه نفر با کاربر2 میخواد بچته...
    این درسته یا راه دیگه و 100 البته بهتر با سوکت و node.js داره که هر 3 ثانیه بار اضافی رو سرور متحمل نشه؟؟
    ممنون

  2. #2
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    توی چت چطور طرف دوم بفهمه که یه نفر یه چت رو با اون باز کرده و یه متنی ارسال کرده؟
    به ازای هر عمل مورد نظرت که میخوای به دیگران انتقالش بدی یه رویداد امیت کن رو سوکت و در طرف دیگه بخونش و نمایش بده پیام رو
    مثلن چت رو که باز کرد با جاوا اسکریپت رویداد باز شدن پینچره رو بفرست رو سوکت و بعد در هر جا که برات مهمه بگیرش و بگو فلانی پنچره رو باز کرد


    یه روشش که به ذهن خودم میرسه استفاده از set_timeout هست که مثلا کاربر1 که با کاربر2 چت رو ایجاد میکنه تو یه جدول که یه سطرش مربوط به کاربر2 هست یه چیزی درج بشه و هر 3 ثانیه جدول مربوط به کاربر2 با $.ajax چک بشه و اگر مقداری داشت بفهمیم که بله یه نفر با کاربر2 میخواد بچته...
    شما داری از سوکت-آی-او استفاده میکنی که دیگه اینکارا رو نکنی. نیازی به Polling نداری. همونطور که بالا گفتم می تونی عمل کنی.

  3. #3

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    نقل قول نوشته شده توسط cups_of_java مشاهده تاپیک
    به ازای هر عمل مورد نظرت که میخوای به دیگران انتقالش بدی یه رویداد امیت کن رو سوکت و در طرف دیگه بخونش و نمایش بده پیام رو
    مثلن چت رو که باز کرد با جاوا اسکریپت رویداد باز شدن پینچره رو بفرست رو سوکت و بعد در هر جا که برات مهمه بگیرش و بگو فلانی پنچره رو باز کرد

    شما داری از سوکت-آی-او استفاده میکنی که دیگه اینکارا رو نکنی. نیازی به Polling نداری. همونطور که بالا گفتم می تونی عمل کنی.
    بازم ممنون...
    خوب بله من هم میخوام همین کار رو انجام بدم ولی مساله اینه که چطور به یه کاربر مشخص بفهمونم که فلانی چت رو باز کرده و میخواد با شما بچته؟
    مثلا 3 نفر تو سایت آنلاینن
    نفر اول روی اسم نفر دوم کلیک میکنه و میخواد باهاش چت کنه کادر مربوطه باز میشه که پیامو بفرسته و پیام رو میفرسته...
    حالا چطور اون نفر دومه بفهمه که نفر اول میخواد باهاش چت کنه و پیام واسه اون ارسال شده!! اینی که شما میگید اینطوریه که وقتی امیت شد به همه کاربرا میره حالا چطور به همون کاربر خواص بره این پیام!؟؟
    البته این میشه که وقتی چت میخواد شروع بشه نام کاربری طرفی که میخواد باهاش چت بشه هم بره سمت سرور و به همه امیت بشه بعد سمت کلاینتهایی که آنلاین هستن نام کاربری مال هرکدوم بود همون باخبر بشه که چت باز شده مال اونه...
    اینی که گفتم میشه؟؟ روشش همینه؟

  4. #4

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    یه سوال کلی این که چطور کاربر رو به محض این که آنلاین شد به سرور واسه چت وصلش کنیم؟؟ که سمت کلایتنش منتظر هر واکنشی از سرور باشه (که یکیش میتونه همون که یه نفر باهاش چتو باز کنه باشه...)

  5. #5
    کاربر دائمی آواتار cups_of_java
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    تهران
    سن
    40
    پست
    1,544

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    سوکت آی او از Websockets پشتیابی میکنه و از همین طریق ارتباط دو طرفه بین مرورگر و سرور برقرار میشه و شما از هر دو سمت می تونید رویداد بفرستید.

    دوست عزیز شما باید بیشتر سوکت آی او رو مطالعه کنی و یک مثال کامل باهاش بنویسی اول... جواب سوالات رو عملی پیدا میکنی.
    اون لینک هایی که من بهت دادم همه چیز توش هست.

  6. #6

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    کد سمت سرور :

    socket.on('seen',function (users){
    var u = users.split("_");
    var sid = u[0];
    var rid = u[1];
    Messages.update(
    { users: users , seen: 0 },
    { $set: { seen: 1 }},
    { multi: true },
    callback
    );
    function callback (err, num) {
    if(num > 0)
    {
    var data = {sid:sid , rid:rid};
    io.sockets.emit('seen',data);
    }
    }
    });


    کد سمت کلاینت :


    $('.private').on('click','div', function(){
    var si = $(this).data('id');
    var ri = sid;
    var users = si + '_' + ri;
    socket.emit('seen',users);
    });
    socket.on('seen',function (data){
    if(sid == data.sid)
    {
    alert("Seen");
    }
    });


  7. #7

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    نقل قول نوشته شده توسط 543310 مشاهده تاپیک
    کد سمت سرور :

    socket.on('seen',function (users){
    var u = users.split("_");
    var sid = u[0];
    var rid = u[1];
    Messages.update(
    { users: users , seen: 0 },
    { $set: { seen: 1 }},
    { multi: true },
    callback
    );
    function callback (err, num) {
    if(num > 0)
    {
    var data = {sid:sid , rid:rid};
    io.sockets.emit('seen',data);
    }
    }
    });


    کد سمت کلاینت :


    $('.private').on('click','div', function(){
    var si = $(this).data('id');
    var ri = sid;
    var users = si + '_' + ri;
    socket.emit('seen',users);
    });
    socket.on('seen',function (data){
    if(sid == data.sid)
    {
    alert("Seen");
    }
    });

    ممنون میشم اگه یکم توضیح بدین...
    مثلا Message.update از توابع خود نود هست؟؟

  8. #8

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    نه دوست عزیز اون تیکه برای اتصال به دیتابیس (mongodb) هستش...

  9. #9

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    نقل قول نوشته شده توسط H:Shojaei مشاهده تاپیک
    ممنون میشم اگه یکم توضیح بدین...
    مثلا Message.update از توابع خود نود هست؟؟
    نه دوست عزیز اون تیکه برای اتصال به دیتابیس (mongodb) هستش...
    این کد بخشی از برنامه چتیه که قبلا نوشتم میتونی تو لینک زیر ببینی :
    http://31.220.49.177:54331/

  10. #10

    نقل قول: با خبر شدن طرف دوم چت از این که متن به او اراسال شده؟؟

    ممنون خیلی کمک کرد

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: شنبه 05 آبان 1386, 13:20 عصر
  2. پیغتم خطا هنگام RUN شدن برنامه دوم
    نوشته شده توسط vb study در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: چهارشنبه 24 خرداد 1385, 11:54 صبح
  3. تشخیص فشرده شدن کلیدهای delete و در این رده
    نوشته شده توسط آیدا رضایی در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: جمعه 05 اسفند 1384, 07:09 صبح
  4. آیا امکان با خبر شدن از تاپیک های جدید در یک انجمن وجود دارد؟
    نوشته شده توسط oghab در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 3
    آخرین پست: پنج شنبه 17 آذر 1384, 17:26 عصر
  5. با خبر شدن از تعداد دانلود یک برنامه
    نوشته شده توسط francosoft در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: پنج شنبه 01 اردیبهشت 1384, 15:45 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •