5 Stimmen

ASP.NET-Chat-Komponente im Facebook-Stil

Ich brauche ein ASP.NET-Chat-Steuerelement, das AJAX-basiert sein muss, und es wird schön sein, jQuery zu haben, da meine gesamte Website mit jQuery Themes thematisiert wird. Was ich suche, ist etwas ähnlich wie die Gmail oder Facebook-Stil Chat, wie das ist sehr einfach zu bedienen aus der Sicht der Nutzer und nimmt nicht viel Platz auf dem Bildschirm.

Irgendwelche Gedanken hier keine, was ich finden kann. Ich habe überall auf Google gesucht und habe nicht in der Lage gewesen, etwas wie das für ASP.NET zu finden. Es gibt viele da draußen für Php, die ich sehe. Hat jemand schon einmal daran gearbeitet? Wir wollen die Website im Juni starten, also muss ich schnell etwas finden. Vielen Dank für die Hilfe.

0 Stimmen

Suchen Sie auf Codeplex und Sie werden mehr finden codeplex.com/site/search?query=chat&ac=3

3voto

Bhargav Mistri Punkte 944

Versuchen Sie das Beispielbild - SimpleChat.jpg Einführung

Und warum nicht, wie man einen einfachen Chatroom für seine Website einrichtet? Nun, am besten ist es, eine schöne Datenbank zum Speichern von Nachrichten zu verwenden; für Demozwecke werde ich jedoch ein statisches Array verwenden. Ich weiß, Sie werden es nicht in Ihrer Webfarm verwenden können. Verstehen Sie diesen Artikel als Konzept, nicht als Lösung. Dieses einfache Web-Chat-Programm soll in jedem Browser funktionieren, der .

Außerdem können Sie mehrere Chaträume auswählen. Warum nicht von dort aus erweitern und mehr von Kanal zu Kanal. Hintergrund

Vor einigen Monaten war ich auf der Suche nach einem kompletten Online-Kundenservice ASP.NET-Steuerelement, um mein Leben zu erleichtern, fand nichts Interessantes, also baute ich mein eigenes. Die Verwendung des Codes

Ersetzen Sie diese Klasse, wenn Sie eine Datenbank zum Speichern der Nachrichten verwenden: Ausklappen

public class Chat
{
    static protected ArrayList pArray = new ArrayList();

    static public void AddMessage(string sDealer, 
                          string sUser, string sMsg)
    {
        string sAddText = sDealer + "~" + sUser + "~" + sMsg;
        pArray.Add(sAddText);

        if ( pArray.Count > 200 )
        {
            pArray.RemoveRange(0,10);
        }
    }

    static public string GetAllMessages(string sDealer)
    {
        string sResponse = "";

        for (int i=0; i< pArray.Count; i++)
        {
            sResponse = sResponse + 
                FormatChat(pArray[i].ToString(), sDealer);
        }

        return(sResponse);
    }

    static private string FormatChat(string sLine, string sDealer)
    {
        int iFirst = sLine.IndexOf("~");
        int iLast = sLine.LastIndexOf("~");

        string sDeal = sLine.Substring(0, iFirst);
        if ( sDeal != sDealer)
            return("");

        string sUser = sLine.Substring(iFirst+1, iLast-(iFirst+1));

        string sMsg = sLine.Substring(iLast+1);

        string sRet = "" + sUser + ": " + sMsg + "";

        return(sRet);
    }
}

Der obige Code liest und schreibt aus dem statischen Array wie in einer Datenbank. Der Code lässt nur 200 Nachrichten im Array zu, danach löscht er jeweils die obersten 10.

Die Chat-Seite ist ziemlich einfach; dies ist der Code hinter aspx.cs: Ausklappen

public class ChatWin : System.Web.UI.Page
{
    protected System.Web.UI.WebControls.TextBox TB_ToSend;
    protected System.Web.UI.WebControls.Button BT_Send;

    private void Page_Load(object sender, System.EventArgs e)
    {
        if ( Page.IsPostBack == false )
        {
            if ( Request.Params["Channel"] != null )
                Session["ChatChannel"] = 
                   Request.Params["Channel"].ToString();
            else
                Session["ChatChannel"] = "1";

        }
    }

    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
        //

        // CODEGEN: This call is required by the ASP.NET Web Form Designer.

        //

        InitializeComponent();
        base.OnInit(e);
    }

    /// <SUMMARY>

    /// Required method for Designer support - do not modify

    /// the contents of this method with the code editor.

    /// </SUMMARY>

    private void InitializeComponent()
    {    
        this.BT_Send.Click += 
           new System.EventHandler(this.BT_Send_Click);
        this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion

    public string GetChatPage()
    {
        return("TheChatScreenWin.aspx");
    }

    private void BT_Send_Click(object sender, System.EventArgs e)
    {
        string sChannel = "";
        string sUser = "";

        if ( Request.Params["Channel"] != null )
            sChannel = Request.Params["Channel"].ToString();
        else
            sChannel = "1";

        if ( Request.Params["User"] != null )
            sUser = Request.Params["User"].ToString();
        else
        {
            Random pRan = new Random();
            int iNum = pRan.Next(9);
            sUser = "Annonymouse" + iNum;
        }

        if ( TB_ToSend.Text.Length > 0)
        {
            PageModule.Chat.AddMessage(sChannel,
                sUser,
                TB_ToSend.Text);

            TB_ToSend.Text = "";        
        }
    }
}

Wenn die Schaltfläche SENDEN angeklickt wird, ruft sie die Funktion AddMessage auf, die eine Zeile am Ende des statischen Arrays hinzufügt.

Die Seite innerhalb des Tags wird alle 4 Sekunden aktualisiert, ohne dass Ihre eigentliche Seite aktualisiert wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X