• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اجرای یک تابع از جایی دیگر
#1
سلام دوستان

سوال یخورده گنگه

فرض کنید 3 تا کاربر به یک سی آر ام لاگین میکنن
هر کاربر بر روی صفحه نخست خود یک تابع مثلا نمایش یک alert دارد
کاربر شماره یک با زدن کلیدی تابع alert کاربر شماره 3 را فراخوانی میکند

نمیدونم تونستم منظورمو برسونم یا نه

ممنون

اینجوری بگم بهتره

محسن و علی و احسان به یه سی آر ام لاگین میکنن
این سه نفر روی صفحه اصلی خودشون یک تابع مثلا برای نمایش یک alert دارن

در این موقع محسن روی یک دکمه کلیک میکنه که این میره اون تابع نمایش alert رو در صفحه نخست احسان فراخونی میکنه و احسان alert رو میبینه

این alert قراراه یک کوئری باشه

فکر کنم بهتر شد Smile
  پاسخ
تشکر شده توسط :
#2
فرض میکنیم میخواهیم ارسال پیغام داشته باشیم.
شما در صفحه ی اصلی همچین کدی رو قرار میدین. یک فرم برای ارسال پیغام و یک تابع ajax که هر چند دقیقه یکبار فراخوانی میشه تا چک کنه که پیغام جدیدی برای کاربر هست یا نه نیاز دارید.
کد پی‌اچ‌پی:
<form method="post" action="send_message.php">
    <
input name="from_user" type="text" value="<?php echo $_SESSION["user"];?>"/>
    <
input name="to_user" type="text" />
    <
input name="message" type="text" />
    <
input name="action" value="send message" type="submit"/>
</
form>
<
script >
var 
ajax_call = function() {
    
jQuery.ajax({
         
type"POST",
        
url"check_has_message.php",
        
dataType"html",
        
data: { "user"'<?php echo $_SESSION["user"];?>'
        
},
        
success: function (result) {
            
alert('you have new message:'+result);
        }
    });
};
var 
interval 1000;    //milisecond
setInterval(ajax_callinterval);
</
script
میمونه دو تا فایل:
1. فایلsend_message.php: در این فایل باید اطلاعاتی که به صورت post بهش ارسال شده رو یجای( دیتابیس یا فایل) مشخص ذخیره کنید.{پیغام، شخص ارسال کننده، شخص دریافت کننده و ...}
2. فایل check_has_message.php: در این فایل شما با توجه به کاربری که درخواست داده{ از روی نام کاربریش مثلا} چک کنید که پیغام نخونده ای داره یا نه. اگر داشت پیغام و سایر اطلاعات مثل اینکه چه کسی و چه زمانی این پیغام رو براش فرستاده رو به خروجی میدین. و اون پیغام رو از لیست خوانده نشده ها خارج میکنید.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط :
#3
این روش رو انجام دادم ولی اگه نخواییم دیتا بیسی این وسط باشه چی؟

چون اپلکیشنی که نوشتم تعداد کاربران آنلاینش و تعداد کوئری هاش و حجمه داده هاش بسیار زیاده و نمیخوام دائم با سرور در تبادل اطلاعات باشه
میخوام هر وقت که اتفاقی افتاد به همون کاربری که لازمه کار داشته باشه نه اینکه کاربران دائم چک کنن ببینن که ایا خبری هست یا نه

مثلا محسن با علی کار داره این پیغام سمته سرور نره بره یغه علی رو بگیره

نمیدونم شاید بد توضیح میدم
  پاسخ
تشکر شده توسط :
#4
یعنی میخواین که سرور هیــچ دخالتی نکنه؟ نمیشه که.
شما نمیتونید با php، javascript یا وب سوکت ارتباط مستقیم بین کاربرا برقرار کنید. اگر میخواین یک کانکشن بین دو کلاینت باز کنید باید سیستم مشتری این اجازه رو به شما بده، یعنی به سیستم عامل دسترسی داشته باشید. اگر میخواین اینکارو از طریق مرورگر انجام بدین مسائل امنیتی زیادی داره.
بنظرم با یک applet جاوا بشه پیاده سازی کرد.

ولی راه هایی هست که بار کمتری روی سرور ایجاد کنه. توی سیستم های چت معمولا پیاده سازی میشه.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط :
#5
مرسی
چه راهی مثلا

یه جا خوندم websocket
یا commet socket
یا sockjs

منبعی واسه آمزش اینا سراغ نداری؟

فریم ورکی هست که از وب سوکت استفاده کنه؟
  پاسخ
تشکر شده توسط :
#6
راه هاش
اینا که گفتی باید مرورگر پشتیبانی کنه(html 5 و فعال بودن javacsript) . همشون از پروتکل tcp استفاده میکنن تفاوت زیادی با هم ندارن.
برای آموزش توی اینترنت زیاد هست، گوگل کنید. مثلا اینجا یا اینجا

در مورد فریمورک توی بخش خودش مطرح کن. من اطلاع ندارم.
به یـزدان که گر ما خرد داشتیم
کجـا این سر انجـام بد داشتیم؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان