PDA

View Full Version : حرفه ای: نحوه پیاده سازی گفتگوی آنلاین، مسنجر در سایت



majnun
شنبه 18 دی 1389, 22:37 عصر
سلام دوستان
خسته نباشید

در مورد تالار گفتگو (چیزی شبیه روم ) در سایت یه سوالی داشتم

ببینید همه کاربران که لاگین کرده اند میتونند در صفحه روم وارد بشوند و اینجا متنشان را بنویسند

و یک جدول که متن و نام کاربری و زمان ارسال را ذخیره کنه

چجوری باید بفهمم که این کاربر در حال تایپ کردن متن هستش ؟ که همین پیغام درحال تایپ مشون داده بشه ؟
چجوری بفهمم که این کاربر الان متنش را ارسال کرده و همون متن را فقط بیارم در صفحه و اضافه کنم ؟

ممنون میشم در مورد پیاده سازی این صفحه توضیح بدین

ricky22
شنبه 18 دی 1389, 22:54 عصر
حقیقت اینی که بخواید نشان بدید کاربر در حال تایپ کردن هست کاری هست که با این روشی که من در ذهن دارم فشار زیادی به سرور میاره و باید سرور قدرتمندی داشته باشید اما راه حل:
در رخداد سمت کاربر در Textbox که داره تایپ می کنه یک Webmethod را صدا بزنید
مثلا(JQuery)
<script type="text/javascript">
$(document).ready(function() {
$("#<%= TextBox1.ClientID %>").blur(function(event) {
$.ajax({
type: "POST",
url: "AjaxTest.aspx/usertyping",
data: "{'data': '" + $('#<%= TextBox1.ClientID %>').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
......
در ضمن به نظر من برای هر متن جدید به ازای هر کاربر یک بار به دیتابیس وصل نشو و درج کن....
نمی دونم دوستان جواب بدن اینجا Bulk Insert کاربرد داره؟ یا استفاده از مثلا فایل XML ...
از نمونه های سورس باز استفاده کن
http://livechatstarterkit.codeplex.com/
موفق باشید

majnun
شنبه 18 دی 1389, 23:00 عصر
دوست من این مثال رو ببین
یه پروژه کامل و خیلی حرفه ای برای این مثاله ولی من چیزی ازش نفهمیدم ...

میتونید ببینید ؟

http://cutesoft.net/downloads/folders/chat_current_releases/default.aspx

majnun
شنبه 18 دی 1389, 23:06 عصر
راستی اینی که شما گفتین من باید هر ثانیه یک وب سرویس را صدا بزنم که بفهمم داره مینویسه یا نه

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

mehrdad201
شنبه 18 دی 1389, 23:48 عصر
شاید بتونی با کش تا حدی بار سرور رو بیاری پایین اما کلا کار سنگینیه. بحصوص برای تعداد کاربر بالا

majnun
یک شنبه 19 دی 1389, 00:05 صبح
با کش چیرو کش کنم ؟

هر ثانیه اطلاعات هر آدم بروز میشه

یه بار برو تو روم یاهو

یکی از لیست کنار خارج میشه یکی اضافه میشی

متون عوض میشه سریع ....

mehrdad201
یک شنبه 19 دی 1389, 00:53 صبح
من فکر کردم چت روم پابلیک دارید. یعنی یه چت رومه که همه توش پست میدن. قضیه چت روم پرایوت خب پیچیده تره. چون اطلاعات اشتراکی کمتره و خب برای هر یوزر یه بار روی سرور میاد

با امکانات محدود کار سختیه اما محال نیست.

aserfg
یک شنبه 19 دی 1389, 07:26 صبح
سلام ، نیازی به وب سرور نداری شما به وسیله xmlhttprequest زمانی که رویداد خاص سمت کلاینتی (به دلخواه خودت) صدا زده شد ، اطلاعات رو (مثلا نام کاربری که در حال تایپ کردن است با توجه به سشن یا هر چیزی که می خوای)به سرور ارسال کنید ، حالا در سمت سرور می تونه یه صفحه با همون ویژگیهایی که برای شی xmlhttprequest لازم است (بدون هیچ عنصرو..) یا یه generic handler باشه .

mmnoody2006
یک شنبه 19 دی 1389, 12:48 عصر
چرا از چت روم های آماده استفاده نمی کنی ؟ مثل فلش چت زیاد بد هم نیست :متفکر:

ricky22
یک شنبه 19 دی 1389, 12:58 عصر
چرا از چت روم های آماده استفاده نمی کنی ؟ مثل فلش چت زیاد بد هم نیست :متفکر:
فکر کنم این Chat Room های فلش داده ها را Log نمی کنند در دیتابیس (مگر این که این امکان را به صورت سفارشی برایشان پیاده سازی کرد.)
-----------------
به نظر این بحث که کاربر در حال تایپ کردن هست را بخواهی نشان بدی کار بی معنایی هست !
به Chat Room سایت StackoverFlow (http://chat.stackoverflow.com/) نگاه کن شاید ایده گرفتی.
موفق باشی

majnun
پنج شنبه 23 دی 1389, 02:27 صبح
ببخشید من موندم چیکار کنم الان

میشه یک توضیح کلی و کامل بدین ؟

خب الان من نیاز به این دارم که با سرعت اینترنت dial up کاربرهام بتونن به سرعت متونی که تغییر میکنه را ببینند و ساعت 1 ساعت حرف زده باشن و 1000 تا رکورد باید در صفحه باشه ، چیکار کنم ؟؟؟

ممنون میشم توضیح بدین

aminghaderi
پنج شنبه 23 دی 1389, 04:43 صبح
حالا اگر 1000 تا کاربر ازش استفاده کنن همانطور که خودت گفتی دیتابیسم میره واسه خودش که :متعجب:فکر می کنی سرویس دهندگان گفتگوی آنلاین یه سرور دارند؟؟؟؟؟
اصلا فکر می کنید در آن واحد یه سرور چند نفر رو بتونه آنلاین تحمل کنه؟؟
پهنای باند چطور؟؟؟
ساختن یه سرویس چت به نظر من نباید مشکل باشه ، البته در سطح کلان طراحیش خیلی سخته به نظر می رسه ، فکر می کنم باید تعداد سرور ها رو افزایش بدیم و مباحث شبکه مطرح بشه...
ظاهرا شرکت Adob خوب روی این موضوع مانور داره که اکثریت از سیستم های فلش برای چت استفاده می کنند .

موفق باشی.

S.ahmad.mirzai
شنبه 09 شهریور 1392, 22:35 عصر
سلام دوست عزیز به وب سایت من به آدرس
http://www.safecode.ir/post.aspx?id=14 یه نگاهی بنداز
نحوه پیاده سازی یک چت به صورت خیلی ساده با استفاده از Asp.Net آموزش دادم
امیدوارم کمکت کرده باشه