Onlineatoz.net | All posts tagged 'chating'

Simple Chat using asp.net

Introduction
simplechat
     The best way is to use a nice database to store messages; however, for demo purposes, I'll use a static array. I hope, you won't be able to use it in your web form. Take this article as the concept, not as a solution. This simple web chat program is intended to work in any browser supporting

Get the code Replace this class if you are using a database to save the messages: public class Chat
{
static protected ArrayList permArray = new ArrayList();

static public void AddMessage(string sDealer, string sUser, string sMsg)
{
string sAddText = sDealer + "~" + sUser + "~" + sMsg;
permArray.Add(sAddText);
if ( permArray.Count > 200 )
{
permArray.RemoveRange(0,10);
}
}
static public string GetAllMessages(string sDealer)
{
string sResponse = "";
for (int i=0; i< permArray.Count; i++)
{
sResponse = sResponse + FormatChat(permArray[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);
}
}

The above code reads and writes from the static array like in a database. The code only allows having 200 messages in the array, after that it deletes the top 10 at the time.
this is the code behind aspx.cs:
public class ChatWin : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TB_ToSend;
protected System.Web.UI.WebControls.Button BT_SendMsg;
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);
}
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///

private void InitializeComponent()
{
this.BT_SendMsg.Click += new System.EventHandler(this.BT_SendMsg_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion

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

private void BT_SendMsg_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 = "";
}
}
}

Posted by: Admin
Posted on: 12/7/2009 at 1:26 PM
Tags: ,
Categories: chating
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (180) | Post RSSRSS comment feed