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.
0 Stimmen
Suchen Sie auf Codeplex und Sie werden mehr finden codeplex.com/site/search?query=chat&ac=3