Una chat in Asp

Siti dinamici con ASP
Impara a creare siti dinamici professionali con ASP

Scritto da Luca Ruggiero nella sezione Asp

La chat è uno dei più diffusi strumenti di comunicazione in tempo reale che un sito possa mettere a disposizione. A differenza di un forum, la chat non registra i messaggi in un database e li lascia a disposizione vita natural durante, ma permette agli utenti di leggere immediatamente i messaggi scritti da altri utenti collegati contemporaneamente alla chat.

E' un sistema che va gestito lato server e l'esempio corrente verrà redatto in Asp.

Una nota: un linguaggio lato server per il Web permette di creare un basilare sistema di chat, ma essendo soggetto al browser per l'output dei messaggi, è facile immaginare che non si tratta della tecnologia migliore per un simile strumento.

Le chat professionali vengono infatti realizzate in Java o con Flash. Si consideri quindi il fine di questo articolo come puramente didattico.

Iniziamo dalla pagina di login, o per meglio dire di ingresso in chat, in cui effettuiamo un controllo che permette all'utente di scegliere al volo una username e di essere ammesso alla chat immediatamente.

Segue il codice del file index.asp:

<%@LANGUAGE = JScript%>
<%
    Response.Buffer = true;
    var username = new String(Request.Form("username"));
    if (username != "")
    {
        Session("user") = username;
    }

%>
<html>
<head>
<title>Una chat in Asp</title>
</head>
<body>

<form method="post" action="index.asp">
    Username:
    <input type="text" name="username">
    <input type="submit" value="Login">
</form>

<%
    if (Session("user") != "" && Session("user") != "undefined")
    {
        with (Response)
        {
            Write("Benvenuto " + Session("user") + " ");
            Write("<a href="chat.asp">Entra in chat</a>");
        }
    }
%>

</body>
</html>
Passiamo alla chat vera e propria; vediamo dunque, in attesa di commentarlo, il codice completo del file chat.asp:
<%@LANGUAGE = JScript%>
<%
    Response.Buffer = true;
    if (Session("user") == "") Response.Redirect("index.asp");
    Response.AddHeader("Refresh", "10");
    var msg = new String(Request.QueryString("msg"));
    var quanti = 10;
%>
<html>
<head>
<title>Una chat in Asp</title>
</head>
<body>

<form method="get" action="chat.asp">
    Messaggio:<br>
    <input type="text" name="msg" size="50" maxlength="150">
    <input type="submit" value="OK">
</form>

<hr>

<p>
<%
    if (msg != "" || msg != "undefined")
    {
        var msg = new String(Application("msg"));
        var arr_msg = msg.split("|");
        Application.Lock();
        Application("msg") = "<b>" + Session("user") + "</b> - " + msg + "|" + "<br>" + Application("msg");
        Application.UnLock();
        for (var i=0; i<quanti; i++)
        {
            Response.Write(arr_msg[i]);
        }
    }
%>
</p>

</body>
</html>
Nell'header della pagina verifichiamo che l'utente sia realmente connesso, impostiamo un timer di 10 secondi per aggiornare automaticamente la pagina e recuperiamo la variabile in cui memorizzare i singoli messaggi inseriti.

Nel corpo della pagina mostriamo il modulo di inserimento dei messaggi, verifichiamo che ci siano messaggi da mostrare e, in caso affermativo, usiamo l'oggetto Application per memorizzare i messaggi, dividendo la stringa in un array, in modo da mostrare sia il messaggio corrente che i messaggi vecchi, secondo un ciclo stabiliti, come lunghezza, dalla variabile "quanti".

I più cliccati della sezione Asp

:: Un semplice form mail in Asp (51.682)

:: Creazione di un Guestbook in Asp (50.783)

:: Creazione di un'area di accesso riservato in Asp (45.423)

:: Connessione ad un database MySql con Asp (25.045)

:: Connessione ad un database Microsoft SQL Server con Asp (24.069)

:: Asp e database (23.123)

:: Differenza tra i metodi get e post e recupero dei dati, attraverso Asp (22.301)

:: Una semplice area di accesso riservato senza DB in Asp (21.384)

:: Riscrivere le URL con Asp (19.743)

:: Creazione di un Sondaggio in Asp (19.100)

IN EVIDENZA
DOWNLOAD