تم كتابة أول غرفة دردشة لي في ASP 3.0. البرنامج بسيط نسبيا. في ذلك الوقت ، لإنشاء غرفة دردشة حقيقية ، يجب استخدام applet applet أو ActiveX. واجهت غرف المخططات المستندة إلى HTTP نفس الأسئلة مثل غرفة الدردشة الأولى. تتضمن هذه المشكلات ظاهرة وميض الشاشة الناجمة عن تحديث الصفحة. ولكن تم حل هذه المشكلة من قبل أياكس. Ajax هو مزيج من المكالمات غير المتزامنة JavaScript و XML. استخدم الآن بعض رمز JavaScript على الخادم لتحقيق غرفة دردشة حقيقية. لن تقدم هذه المقالة أياكس ، ويفترض أن لديك فهمًا معينًا لاستخدام Ajax و ASP.NET. فقط قدم كيفية استخدام تقنية Ajax لإنشاء غرفة دردشة أساسية.
روتين
هذه غرفة دردشة واحدة من مستخدم متعدد. يمكن أن يحقق وظائف الدردشة الأساسية ، ويدعم أيضًا بعض خطوط الأوامر مثل: /المسؤول واضح لمسح سجل الدردشة ، /nick [name] لتغيير لقب المستخدم. يوضح البرنامج هذا البرنامج لمعالجة جميع معلومات الدردشة ومعلومات المستخدم مع فئة Chatedine.
مستخدمي الهاشت.
StringCollection Chat ؛
DECRARS مثيل شابات عالمي في global.asax.cs ، ومشاركة جميع المستخدمين في غرفة الدردشة:
uchat.Chatngine.ichatngine static static
هناك أيضًا وظيفة مؤقت JavaScript تستخدم لمزامنة المتغيرات العالمية ومعلومات الصفحة.
وظائف setTimers ()
{{
timeId = window.settimeout (updateall () ، refreshrate) ؛
}
يتم التعرف على كل مستخدم بشكل فريد بواسطة اسم المستخدم و GUID.
adduser public void (معرف السلسلة ، مستخدم سلسلة)
{{
// تأكد من عدم وجود اسم المستخدم
إذا (! Userexists (المستخدم))
{{
// أضف مستخدم إلى قائمة المستخدمين
user.add (id ، user) ؛
// عرض رسالة إخطار لجميع المستخدمين
chat.add (this.makeservermessage (string.format (string.format (
joinedfmt ، المستخدم)))) ؛
}
}
برنامج تشغيل واجهة
تعرض صفحة START بعض المعلومات الأساسية حول الجلسة الحالية ، مثل رقم المستخدم ، وحجم سجل الدردشة. يجب على المستخدمين توفير اسم مستخدم للدخول إلى غرفة الدردشة. انقر فوق زر تسجيل الدخول لإدخال الوظيفة أدناه:
تسجيل الدخول الفراغ المحمي (مرسل الكائن ، EventArgs E)
{{
string user = txtusername.text ؛
if (! validatenick (user)) return ؛
if (global.engine.userexist (المستخدم))
{{
lblerrormsg.text = مستخدم مع هذا +
الاسم alrem موجود ، حاول مرة أخرى. ؛
يعود؛
}
response.redirect (server.aspx؟ Action = login & u = + user) ؛
}
بعد بعض التحقق البسيط ، يتم إضافة المستخدم إلى قوائم المستخدمين عبر وظيفة Adduser ، ثم إدخال صفحة Chat Room Chat.aspx في هذا الوقت.
<script type = text/javaScript>
Sniffbrowsertype () ؛
// يظهر التحميل .. الشاشة
showloadscreen () ؛
// اضبط javaScript time و
// يقوم بتحميل قائمة المستخدم والرسائل
setTimers () ؛
setFocus ('mytext') ؛
</script>
عندما يكتب المستخدم بعض المعلومات والإرجاع ، سيتم استدعاء الوظائف التالية:
<نوع الإدخال = فئة النص = myText
id = mytext onedown = capturereturn (event)>
// التقاط مفتاح Enter في مربع الإدخال و Post Message
وظيفة capturereturn (الحدث)
{{
if (event.hich || event.keycode)
{{
if ((event.hich == 13) || (Event.KeyCode == 13))
{{
posttext () ؛
العودة كاذبة
}
آخر {
العودة صحيح.
}
}
}
وظيفة posttext ()
{{
RND ++ ؛
// مربع نص واضح أولاً
chatbox = getElement (myText) ؛
الدردشة = chatbox.value ؛
chatbox.value = ؛
// احصل على USER GUID من عنوان URL
userId = logation.search.subString (1 ، محليًا. search.length) ؛
// بناء عنوان URL لخادم AJAX
url = 'server.aspx؟
EncodeUricomponent (chat) + '& session =' + rnd ؛
// إنشاء وضبط المثيل
// من كائن طلب XMLHTTP المستفيد
req = getajax () ؛
// تحديث الصفحة برسالة جديدة
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {{
updateall () ؛
}
}
req.open ('get' ، url ، true) ؛
req.send (null) ؛
}
هناك الكثير ، لا يوجد شيء خاص ، يمكنك رؤية الكود المصدري ، هناك الكثير من معلومات التعليقات التوضيحية فيه.
ختاماً
لإنشاء غرفة دردشة مع Java Applet ، تحتاج إلى تثبيت JVM على جهاز المستخدم. هناك بعض المشكلات الأمنية مع التحكم النشط. مع Ajax تم تقديمه للتو ، يمكنك بسهولة إنشاء برنامج غرفة الدردشة استنادًا إلى HTTP لا يتطلب من المستخدمين تثبيت أي برنامج ، ومن السهل الحفاظ عليه.