use*_*800 5 asp.net ajax jquery facebook chat
我将推出一个有点像社交媒体网站的网站.我需要一个基于AJAX的ASP.NET聊天控件,拥有jQuery会很好,因为我的整个网站将以jQuery主题为主题.我正在寻找的是类似于Gmail或Facebook风格的聊天,因为从用户的角度来看这非常容易使用,并且不会占用大量的屏幕空间.
这里的任何想法都没有我能找到的.我已经遍布谷歌,并且无法找到类似ASP.NET的东西.我看到Php有很多.以前有人为此工作吗?我们想在六月推出该网站,所以我必须快速找到一些东西.感谢帮助.
小智 3
试试这个.. 示例图片 - SimpleChat.jpg 简介
为什么不呢,如何为您的网站创建一个简单的聊天室呢?嗯,最好的方法是使用一个好的数据库来存储消息;但是,出于演示目的,我将使用静态数组。我知道,您将无法在您的网络场中使用它。将本文作为概念,而不是作为解决方案。这个简单的网络聊天程序旨在在任何支持 .
此外,您还可以选择多个聊天室。为什么不从那里开始,从一个渠道扩展到另一个渠道呢?背景
几个月前,我一直在寻找一个完整的在线客户服务 ASP.NET 控件来让我的生活更轻松,但没有找到任何有趣的东西,所以我自己构建了。使用代码
如果您使用数据库来保存消息,请替换此类:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码像在数据库中一样从静态数组中读取和写入。该代码只允许数组中有 200 条消息,之后它会删除当时的前 10 条消息。
聊天页面非常简单;这是 aspx.cs 背后的代码:
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 = "";
}
}
}
Run Code Online (Sandbox Code Playgroud)
单击 SEND 按钮时,它会调用函数 AddMessage,在静态数组的末尾添加一行。
标签内的页面每 4 秒刷新一次,而不刷新您的实际页面。
| 归档时间: |
|
| 查看次数: |
5353 次 |
| 最近记录: |