Click here to Skip to main content
Licence CPOL
First Posted 28 Jul 2007
Views 31,696
Downloads 346
Bookmarked 30 times

Ajax Basic - Ajax Member Chat (AMC)

By | 28 Jul 2007 | Article
Create a website for online chat using Ajax Basic and ASP.NET 2.0 with C#
Screenshot - 11.jpg

Introduction

This article describes how to create a website for online chat by using Ajax Basic and ASP.NET 2.0 with C#.

Background

See demo here.

Screenshot - 22.jpg

Screenshot - 33.jpg

Using the Code

//
// Login
//
protected void btn_login_Click(object sender, EventArgs e)
{
CashMember.iTotalMember++;
Array.Resize(ref CashMember.arrMember, CashMember.iTotalMember);
int iIndex = CashMember.iTotalMember - 1;
CashMember.arrMember[iIndex].sUserName = tbx_user.Text.Trim();
CashMember.arrMember[iIndex].sPassWord = tbx_pass.Text.Trim();
CashMember.arrMember[iIndex].sIP = Request.UserHostAddress;
CashMember.arrMember[iIndex].iTotalMes = 0;
CashMember.arrMember[iIndex].sStatus = Status.IsOffLine;
CashMember.arrMember[iIndex].sLastDate = DateTime.Now.ToString();
Session["UserLogin"] = tbx_user.Text.Trim();
Response.Redirect("Chat.aspx");
}
// Server.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
//============================================================
// Check Login
//============================================================
string sUser = "";
try
{
sUser = Session["UserLogin"].ToString();
}
catch
{
sUser = "";
}
if (!String.IsNullOrEmpty(sUser))
{
//============================================================
// Clear Control
//============================================================
this.Controls.Clear();
//============================================================
// Switch Command Name
//============================================================
string sCommand = Request["cmd"];
if (!String.IsNullOrEmpty(sCommand))
{
switch (sCommand.ToLower())
{
case "logout":
try
{
string sUsername = Session["UserLogin"].ToString().ToLower();
Session["UserLogin"] = "";
// Remove User out MemberList
for (int i = 0; i < CashMember.arrMember.Length; i++)
{
if (sUsername.Equals(CashMember.arrMember[i].sUserName.ToLower()))
{ 
int iUp = CashMember.arrMember.GetUpperBound(0);
CashMember.arrMember[i] = CashMember.arrMember[iUp];
CashMember.iTotalMember--;
Array.Resize(ref CashMember.arrMember, CashMember.iTotalMember);
}
}
}
catch { }
Response.Redirect(Request.Url.ToString());
break;
case "clear":
try
{
Session["UserLogin"] = "";
CashMember.iTotalMember = 0;
CashMember.arrMember = new Member[1];
}
catch { }
Response.Redirect(Request.Url.ToString());
break;
case "getdata":
//============================================================
// Return Data to Client
//============================================================
string sFromUserGetData = Request["fromusergetdata"];
try
{
for (int i = 0; i < CashMember.arrMember.Length; i++)
{
if (CashMember.arrMember[i].sUserName.ToLower().Equals(sFromUserGetData.ToLower()))
{
if (CashMember.arrMember[i].sMessenger.Length > 0)
{
string sCtrID = CashMember.arrMember[i].sMessenger[0].sControlID;
string sContent = CashMember.arrMember[i].sMessenger[0].sUserName + ": " + 
	CashMember.arrMember[i].sMessenger[0].sContent + "<br>";
Response.Write(sContent);
int upBound = CashMember.arrMember[i].sMessenger.GetUpperBound(0);
CashMember.arrMember[i].sMessenger[0] = CashMember.arrMember[i].sMessenger[upBound];
CashMember.arrMember[i].iTotalMes--;
Array.Resize(ref CashMember.arrMember[i].sMessenger, CashMember.arrMember[i].iTotalMes);
}
}
}
}
catch { }
break;
case "senddata":
//============================================================
// Get Data from Client and Save
//============================================================
string url = Request.Url.ToString();
string sToUser = Request["touser"];
string sFromUser = Request["fromuser"];
string sCtrID2 = Request["controldisplay"];
string sContent2 = Request["msg"];
try
{
for (int i = 0; i < CashMember.arrMember.Length; i++)
{
if (CashMember.arrMember[i].sUserName.ToLower().Equals(sToUser.ToLower()))
{
CashMember.arrMember[i].iTotalMes++;
Array.Resize(ref CashMember.arrMember[i].sMessenger, CashMember.arrMember[i].iTotalMes);
int ind = CashMember.arrMember[i].iTotalMes - 1;
CashMember.arrMember[i].sMessenger[ind].sUserName = sFromUser;
CashMember.arrMember[i].sMessenger[ind].sControlID = sCtrID2;
CashMember.arrMember[i].sMessenger[ind].sContent = sContent2;
}
}
}
catch { }
break;
case "getmemberlist":
//============================================================
// Return Member List to Client
//============================================================ 
try
{
Response.Write("<p align=center><b>Member List</b></p>");
foreach (Member mem in CashMember.arrMember)
{
//NewDivMessenger(sNickName)
Response.Write("<img src=\"Images/user.png\" /> 
	<a href=\"javascript:NewDivMessenger('"+ mem.sUserName +"')\" ><b>" + 
	mem.sUserName + "</b></a><br>");
} 
}
catch { }
break;
}
}
}
}

You can take a look at the source code.

Contact

Email: thuthuattinhoc@yahoo.com
Phone: 0957736345

History

  • 28th July, 2007: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Phuongkar



Vietnam Vietnam

Member

Khong co mo ta

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralReally Appreciate Pinmemberlove_chopra123:33 7 Mar '08  
GeneralRe: Really Appreciate PinmemberJahangir Shahzad21:45 13 Jul '10  
Questioncan we make it standard? PinmemberJahangir Shahzad17:54 31 Dec '07  
AnswerRe: can we make it standard? PinmemberGovardhana Reddy6:19 26 Feb '08  
Generalproblems in firefox PinmemberJahangir Shahzad19:17 3 Nov '07  
GeneralRe: problems in firefox Pinmemberarindam.roy1:36 5 Nov '07  
GeneralRe: problems in firefox PinmemberJahangir Shahzad17:16 5 Nov '07  
GeneralRe: problems in firefox Pinmemberudhaya123516:00 15 Dec '08  
GeneralRe: problems in firefox Pinmemberrushi_gavankar3:26 15 Mar '09  
GeneralGood One!!! Pinmemberarindam.roy9:51 2 Nov '07  
Questionhow can I send to multi-user Pinmembermargiex19:43 31 Jul '07  
AnswerRe: how can I send to multi-user Pinmemberminh phuongkar4:41 1 Aug '07  
Generalslowness PinmemberRichElswick2:37 31 Jul '07  
GeneralRe: slowness Pinmemberminh phuongkar4:48 1 Aug '07  
GeneralRe: slowness PinmemberRichElswick5:39 1 Aug '07  
QuestionWhy using arrays? PinmemberPolity4h14:08 28 Jul '07  
AnswerRe: Why using arrays? Pinmemberminh phuongkar19:17 28 Jul '07  
GeneralRe: Why using arrays? PinmemberPolity4h10:05 29 Jul '07  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120517.1 | Last Updated 28 Jul 2007
Article Copyright 2007 by Phuongkar
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid