Ma première salle de chat a été écrite dans ASP 3.0. Le programme est relativement simple. À ce moment-là, pour construire une vraie salle de chat, un contrôle de l'applet Java ou ActiveX doit être utilisé. Les salles de graphiques basées sur HTTP ont été confrontées aux mêmes questions que ma première salle de chat. Ces problèmes incluent le phénomène clignotant de l'écran causé par la rafraîchissement de la page. Mais ce problème a été résolu par Ajax. Ajax est une combinaison d'appels asynchrones JavaScript et XML. Utilisez maintenant du code JavaScript sur le serveur pour réaliser une vraie salle de chat. Cet article ne présentera pas Ajax et suppose que vous avez une certaine compréhension de l'utilisation de AJAX et ASP.NET. Introduisez simplement comment utiliser la technologie Ajax pour créer une salle de chat de base.
Routine
Il s'agit d'une seule salle de discussion d'un utilisateur multi-utilisateurs. Il peut atteindre des fonctions de chat de base et prend également en charge certaines lignes de commande telles que: / admin claire pour effacer l'historique de chat, / nick [name] pour modifier le surnom de l'utilisateur. Le programme illustre ce programme pour traiter toutes les informations de chat et les informations des utilisateurs avec une classe de chatine.
Utilisateurs de hashtable;
StringCollection CHAT;
Déclare une instance de chattenne mondiale dans global.asax.cs, partageant tous les utilisateurs dans la salle de chat:
Public Static uchat.chatngine.ichatngine moteur = new uchat.chatngine.chatengine ();
Il existe également une fonction de minuterie JavaScript utilisée pour synchroniser les variables globales et les informations sur la page.
Fonction Settimers ()
{{
TimeId = Window.SetTimeout (UpdateAll (), Refreshrate);
}
Chaque utilisateur est identifié de manière unique par un nom d'utilisateur et un GUID.
Public void addUser (ID de chaîne, utilisateur de chaîne)
{{
// Assurez-vous que le nom d'utilisateur n'existe pas déjà
if (! userexists (utilisateur))
{{
// ajouter l'utilisateur à la liste des utilisateurs
users.add (id, utilisateur);
// Affiche un message de notification à tous les utilisateurs
Chat.add (this.makeserverMessage (string.format (string.format (
Jointfmt, utilisateur))));
}
}
Interface d'exécution du programme
La page Démarrer affiche certaines informations de base sur la session en cours, telles que le numéro d'utilisateur, la taille de l'historique du chat. Les utilisateurs doivent fournir un nom d'utilisateur pour entrer dans la salle de chat. Cliquez sur le bouton de connexion pour saisir la fonction ci-dessous:
Connexion void protégée (expéditeur d'objet, EventArgs e)
{{
String user = txTUserName.Text;
if (! ValidaTenick (utilisateur)) renvoie;
if (global.engine.userexist (utilisateur))
{{
lblerrormsg.text = un utilisateur avec ce +
Nom Alream existe, réessayez.;
Retour;
}
Réponse.redirect (server.aspx? Action = login & u = + utilisateur);
}
Après une vérification simple, l'utilisateur est ajouté aux listes d'utilisateurs via la fonction AddUser, puis en entrant dans la page de chat Chat.aspx.
<script type = text / javascript>
sniffbrowserType ();
// montre le chargement .. écran
showloadScreen ();
// Définit le tempsur JavaScript et
// charge la liste des utilisateurs et les messages
settimers ();
setFocus ('mytext');
</cript>
Lorsque l'utilisateur tape certaines informations et renvoie, les fonctions suivantes seront appelées:
<entrée type = classe de texte = MyText
id = mytext onedown = captureReturn (événement)>
// capturez la touche Entrée dans la zone d'entrée et publiez le message
Fonction CaptureReturn (événement)
{{
if (event.which || event.KeyCode)
{{
If ((event.which == 13) || (event.KeyCode == 13))
{{
postText ();
Retourne false;
}
autre {
Retour Vrai;
}
}
}
Fonction postText ()
{{
Rnd ++;
// Effacer la zone de texte en premier
Chatbox = getElement (myText);
Chat = chatBox.Value;
Chatbox.value =;
// obtient un guid utilisateur de l'URL
userId = Logation.Search.Substring (1, localement.search.length);
// Construire une URL du serveur ajax
url = 'server.aspx?
EncodeuComponent (CHAT) + '& session =' + rnd;
// Créer et définir l'instance
// de l'objet de demande XMLHTTP approprié
Req = getajax ();
// Page de mise à jour avec un nouveau message
Req.onreadystateChange = function () {
if (req.readystate == 4 && req.status == 200) {{
UpdateAll ();
}
}
Req.open ('get', url, true);
Req.send (null);
}
Il y en a tellement, il n'y a rien de spécial, vous pouvez voir le code source, il y a beaucoup d'informations d'annotation.
en conclusion
Pour construire une salle de chat avec l'applet Java, vous devez installer JVM sur la machine de l'utilisateur. Il y a des problèmes de sécurité avec le contrôle ActiveX. Avec l'Ajax qui vient d'être introduit, vous pouvez facilement créer un programme de salle de chat basé sur HTTP qui ne nécessite pas que les utilisateurs installent un logiciel, et il est facile à maintenir.