PDA

View Full Version : سوال: آیا با icmp می توان در بستر وب به سرور پیغام فرستاد؟



explod_javad
سه شنبه 07 آبان 1387, 17:03 عصر
با عرض سلام خدمت همه دوستان.
کسی می دونی که چطور میشه از طریق وب هر چند دقیقه یک pocket که حاوی یک سری مشخصات از کاربر هست را به سرور با پورت دلخواه ارسال کرد.
در قسمت سرور هم یک application در حال گوش کردن یک پورت خاص ، پیام ها را دریافت بکند.
کاری که یاهو مسنجر در نسخه جدید خود کرده است.

raravaice
سه شنبه 07 آبان 1387, 17:37 عصر
اگر منظورت نسخه تحت وب یاهو مسنجر هست اون Ajax هست.
نوشتن Socket Programing در وب تقریبا بی معنی هست.


موفق باشید

kiosksoft
سه شنبه 07 آبان 1387, 17:43 عصر
با عرض سلام خدمت همه دوستان.
کسی می دونی که چطور میشه از طریق وب هر چند دقیقه یک pocket که حاوی یک سری مشخصات از کاربر هست را به سرور با پورت دلخواه ارسال کرد.
در قسمت سرور هم یک application در حال گوش کردن یک پورت خاص ، پیام ها را دریافت بکند.
کاری که یاهو مسنجر در نسخه جدید خود کرده است.


دوست عزیز این فایل رو دانلود کنید , ICMP.Dll و چند تا مثال به زبانهای مختلف هستش .

explod_javad
سه شنبه 07 آبان 1387, 17:51 عصر
نه دوست عزیز، در نسخه جدید application یاهو مسنجر اگر logout کنید سریعا ای شما در یاهو مسنجر دوستانی که در حال چت با آنها هستید حذف میشود ولی در نسخه های قدیمی ، تقریبا 1 دقیقه طول میکشید.
و همچنین در نسخه جدید حتی اگر از مسنجر استفاده نکنی ، شبکه مشغول میشود البته با حجم خیلی کم مسنجر اقدام به ارسال پاکت به سرور یاهو میکند. یک جایی خوندم که یاهو مسنجر از portocol رایج ICMP استفاده میکند.

دلیل تمایل به استفاده از این روش این است که من میخاهم یک وب اپلیکیشن بنویسم که در ان وضعیت آن لاین بودن یک کاربر خیلی مهم است.
میخاهم وقتی یک کاربر logout کرد ، سرور سریعا متوجه شود.
آیا در نسخه آجاکس یاهو مسنجر این امکان را می توان دید.(من نسخه تحت وب یاهو را ندیدم)؟!

raravaice
سه شنبه 07 آبان 1387, 20:10 عصر
مورد اول اینکه ICMP همون Ping هست و در win app کاربرد داره نه web app


میخاهم وقتی یک کاربر logout کرد ، سرور سریعا متوجه شود.
خوب اینکه خیلی راحته! کاربر وقتی روی کلید خروج کلیک کنه خیلی راحت میتونی بفهمی خارج شده!!!!!!!



آیا در نسخه آجاکس یاهو مسنجر این امکان را می توان دید.(من نسخه تحت وب یاهو را ندیدم)؟!


اگر میخوای چنین کاری بکنی راحتترین راه حل Ajax هست، یه تایمر javascript بزار که هر 10 ثانیه تابع Ajax رو صدا بزنه و وضعیت رو با سرور Confirm کنه.

yahoo هم از ajax استفاده میکنه ، میگی نه؟ برو firebug رو روی firefox بگیر از Tab کنسول این مسئله رو به وضوح بررسی کن.

موفق باشید

aspnet_22
سه شنبه 07 آبان 1387, 23:59 عصر
مورد اول اینکه ICMP همون Ping هست و در win app کاربرد داره نه web app


خوب اینکه خیلی راحته! کاربر وقتی روی کلید خروج کلیک کنه خیلی راحت میتونی بفهمی خارج شده!!!!!!!



اگر میخوای چنین کاری بکنی راحتترین راه حل Ajax هست، یه تایمر javascript بزار که هر 10 ثانیه تابع Ajax رو صدا بزنه و وضعیت رو با سرور Confirm کنه.

yahoo هم از ajax استفاده میکنه ، میگی نه؟ برو firebug رو روی firefox بگیر از Tab کنسول این مسئله رو به وضوح بررسی کن.

موفق باشید
منظورتون از تابع ajax چیه ؟

raravaice
چهارشنبه 08 آبان 1387, 00:47 صبح
منظورتون از تابع ajax چیه ؟

تابعی که داره XHR رو هندل میکنه.

موفق باشی

explod_javad
چهارشنبه 08 آبان 1387, 07:14 صبح
خوب اینکه خیلی راحته! کاربر وقتی روی کلید خروج کلیک کنه خیلی راحت میتونی بفهمی خارج شده!!!!!!!

yahoo هم از ajax استفاده میکنه ، میگی نه؟ برو firebug رو روی firefox بگیر از Tab کنسول این مسئله رو به وضوح بررسی کن.

موفق باشید

دوست عزيز در مورد اول : اگر كابر روي كليد خروج نزد و پنجره Browser خودشو بست چطور ؟
مطلب دومي :ميشه بيشتر توضيح بدي ، چطور بفهمم كه ياهو از جاكس استفاده ميكنه؟



تابعی که داره XHR رو هندل میکنه

ميشه توضيح بيشتري بدي ؟
دوست عزيز جواب شما سولات بيشتري براي ما ايجاد ميكنه ؟ شايد از اطلاعات كم ما باشه !
تشكر از وقت اي كه ميزاري

shahab_ksh
چهارشنبه 08 آبان 1387, 10:04 صبح
مطلب دومي :ميشه بيشتر توضيح بدي ، چطور بفهمم كه ياهو از جاكس استفاده ميكنه؟

یه نگاه اینجا بندازین تا نگارش منسجر برای وب رو ببینید
http://barnamenevis.org/forum/showthread.php?t=124467

raravaice
چهارشنبه 08 آبان 1387, 11:23 صبح
دوست عزيز در مورد اول : اگر كابر روي كليد خروج نزد و پنجره Browser خودشو بست چطور ؟

کاری از شما ساخته نیست! یاهو هم کاری نمیکنه و منتظر اتصال بعدی شما میشه اون موقع وضعیت رو چک میکنه و همه Session های فعال شما رو میبنده.

ولی من یه تئوری دارم برای این موضوع :
اونم اینکه شما در خواستت رو هر ثانیه بفرستی به سرور تا سرور از وجود شما مطلع باشه "مثل ضربان قلب میمونه" و وقتی کاربر صفحه رو خواست ببنده توی رویداد onunload درخواست اتمام Session رو برای سرور بفرست ولی خواست باشه یه حتما باید بین ارسال درخواست و بسته شدن پنجره یه وقفه بندازی تا درخواست به سرور برسه که این وقفه میتونه یه Alert باشه.


مطلب دومي :ميشه بيشتر توضيح بدي ، چطور بفهمم كه ياهو از جاكس استفاده ميكنه؟

http://getfirebug.com

منظور از تابع Ajax همون تابعی هست که شما با جاوا اسکریپت نوشتی برای اینکه در خواست رو بفرستی به سرور و دریافت کنی.

XHR=XMLHttpRequest

موفق باشید

explod_javad
چهارشنبه 08 آبان 1387, 19:29 عصر
سلام.
من در حال پیاده سازی یک نرم افزار اتوماسیون (دبیرخانه) تحت وب هستم.
من نرم افزار های مشابه رو دیدم. آنها هم در توضیحات و پی دی اف خود ، اعلام کردند که از روشی استفاده می کنند که از پروتکول icmp استفاده می کند و در صورت log out و یا خروج (بدون کلیک روی دکمه خاص) سریعاً سرور متوجه می شود.


روش استفاده در این نرم افزار ها :

فکر کنم که از طریق آجاکس هر مثلا 5 ثانیه یک پاکت به پورت خاص از سرور ارسال می کند.در سرور هم یک اپلیکیشن وجود دارد که روی پورت مخصوص شنود می کند .با بررسی این زمان تاخیر دریافت پاکت ما متوجه خروج کاربر می شویم.

توضیح بیشتر :
لطفا اینجوری فکر کنید که قرار است وب سایت و نرم افزار اپلیکیشن بر روی یک سرور در داخل شبکه lan کار کند
البته امکان استفاده از طریق اینترنت هم فراهم باشد ولی با سرور شخصی.


سوال دیگر :
آیا میشه که از طریق asp.net یک پاکت ( دیتا کم حجم شامل مشخصات کاربر ) به پورت باز یک سرور فرستاد و در سرور هم یک نرم افزار(applicayion) شنود کند و دیتا را دریافت کند.
فکر کنم با این روش هم میشه مقصودم برسم

raravaice
چهارشنبه 08 آبان 1387, 21:17 عصر
فکر کنم که از طریق آجاکس هر مثلا 5 ثانیه یک پاکت به پورت خاص از سرور ارسال می کند.
Ajax به هیچ چیزی دسترسی نداره، فقط دیتای Text میفرسته برای سرور خودش توی حوزه دامنه خودش.



آیا میشه که از طریق asp.net یک پاکت ( دیتا کم حجم شامل مشخصات کاربر ) به پورت باز یک سرور فرستاد و در سرور هم یک نرم افزار(applicayion) شنود کند و دیتا را دریافت کند.

مگه کلاینت های شما Windows Application دارن که میخوا با پورتها کار کنی!
اگر نه که با همون Ajax مشکل حل میشه.

موفق باشید

explod_javad
پنج شنبه 09 آبان 1387, 15:24 عصر
Ajax به هیچ چیزی دسترسی نداره، فقط دیتای Text میفرسته برای سرور خودش توی حوزه دامنه خودش.



مگه کلاینت های شما Windows Application دارن که میخوا با پورتها کار کنی!
اگر نه که با همون Ajax مشکل حل میشه.

موفق باشید

دوست عزیز فکر کنم باید از روشی که میگی استفاده کنم.
حالا چطور یک fuction یا هر تابع دیکر روی سرور رو هر مثلا 5 ثانیه اجرا کنم که کابران آن لاین رو چک کنه و یک فیلد در جدول کاربرها را که وضعیت (state online) نام دارد را برای کاربران خارج شده false کنه ؟
البته بجای دیتا بیس و جدول می توان از کش استفاده کرد.
حالا نظر شما چیه ؟

raravaice
پنج شنبه 09 آبان 1387, 19:49 عصر
حالا چطور یک fuction یا هر تابع دیکر روی سرور رو هر مثلا 5 ثانیه اجرا کنم که کابران آن لاین رو چک کنه...

با Ajax کار کردی تا حالا ؟!!!


البته بجای دیتا بیس و جدول می توان از کش استفاده کرد.
حالا نظر شما چیه ؟

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

موفق باشید

explod_javad
پنج شنبه 09 آبان 1387, 20:53 عصر
نه زیاد.در حد استفاده از updatePanel آجاکس که همراه vs2008 هست.
ولی میدنم که حجم سایت زیاد میشه و سرعت لود کم میشه .اما با استفاده از web methodبهتر میشه جواب گرفت.
ولی استفاده از web method رو بلد نیستم.اصلا نمیدونم روش بهتری هم هست یا نه ؟
اگه وقتشو داری لطف کن یه مثال و یا راه حل برام بزار.
ممنون.

raravaice
شنبه 11 آبان 1387, 17:33 عصر
اینو ببین سعی کن ازش سر در بیاری!



setTimeout("Office.Ajax.Handler()",1000);


موفق باشید

explod_javad
شنبه 11 آبان 1387, 19:24 عصر
اینو ببین سعی کن ازش سر در بیاری!



setTimeout("Office.Ajax.Handler()",1000);




سلام و ممنون
ولی من از فایل های جاوایی که گذاشتی هیچی سر درنیاوردم.


setTimeout("Office.Ajax.Handler()",1000);

این کد رو کجا استفاده کنم ؟

raravaice
شنبه 11 آبان 1387, 21:08 عصر
سخت شد.



setTimeout("Office.Ajax.Handler()",1000);


هر 1 ثانیه یک بار میاد تابع خودش رو صدا میزنه. تابع خودش هم دقیقا همون تابع Ajax هست که یه درخواست رو هر ثانیه میفرسته به سرور و جواب رو به صورت XML میگیره و میفرسته به تابع XML که پردازش کنه البته این قسمتش به کارت نمیاد ولی ..

همه فایلها رو توی صفحه لود کن چون هر کدوم ادامه دیگری هست، یکی نباشه بقیه کار نمی کنه.

موفق باشید

explod_javad
یک شنبه 12 آبان 1387, 14:25 عصر
سلام.
تابع setTimeout کجا باید تعریف بشه؟
فایل های جاوا رو در هدر Html اضافه کنم ؟