用Application轻松实现在线客服(简单的QQ聊天功能)
2005-03-05 22:42
726 查看
前些日子,在网上看到好多WEB网站即时消息的例子,大都是XML做的,无奈对于我这个跑的慢的人(XML看了一个月,还是没搞明白怎么用
),只好望而兴叹了。没办法只能从C#的角落里把Application再揪出来用用了.(尽管听他们说实现的效率比WebService差很多) 。呵呵,废话不说了,不过在高手面前班门弄斧还是有点脸红的,呵呵.
(1) 存入用户列表把用户名存入Application代码如下: string User=Server.UrlDecode(Request.QueryString["User"]);
Session["UserName"]=User;
Application["OnlineUser"]+=Session["UserName"].ToString()+",";
Response.Write("<SCRIPT>window.open('index.aspx','','left=800,scrollbars=yes,width=200,height=500');</SCRIPT>");
(2) 建框架页(index.aspx)
10秒钟自动刷新
TOPframe页
隐藏该框架,负责弹出消息框
Application[“message”]为客户留言内容,在发送留言页面对其赋值;
UserNameList提取接收人变量;
代码如下:
try
{
if(Application["message"]!="")
{
string UserNameList=this.Application["message"].ToString().Substring(this.Application["message"].ToString().IndexOf("对")+1,(this.Application["message"].ToString().IndexOf("说")-this.Application["message"].ToString().IndexOf("对")-1));
if (Session["UserName"].ToString()==UserNameList)
{
Response.Write("<SCRIPT>window.open('messagelist.aspx','','left=400,top=400,scrollbars=yes,width=400,height=300');</SCRIPT>");
}
}
}
catch
{}
mainframe页:显示客服人员列表:注意:在这里要判断一下,如果是客服人员则显示.如果是客户则不显示,客户记录Session["UserName"]时,用当前时间+随机数.在客户点击相应客服人员时把其存入Application用户列表,在这里不多叙述.
代码如下:string [] abc=Application["OnlineUser"].ToString().Split(',');
Label1.Text="在线人数列表:<br>";
for(int i=0;i<abc.Length;i++)
{
string UserList=abc[i].ToString();
Label1.Text+="<a href=# onclick=window.open('send.aspx?User="+UserList+"','','left=400,top=400,scrollbars=yes,width=400,height=200');>"+abc[i].ToString()+"</a><br>";
}
(3) 客户向客服发送消息: 此页与TOPFRAME页构成一收一发. Application["message"]=Session["UserName"]+"对"+User+"说:<br>"+message.Text;
Response.Write("<script>alert('发送成功!');window.close();</script>");
(4)接受消息与回复(messagelist.aspx)显示接收消息后,把消息清空
if(!Page.IsPostBack)
{
Label1.Text=Application["message"].ToString();
User1=Application["message"].ToString().Substring(0,Application["message"].ToString().IndexOf("对"));
Label2.Text=User1;
Application["message"]="";
}
回复发送人:
string User111=Label2.Text;
Application["message"]=Session["UserName"]+"对"+User111+"说:<br>"+message.Text;
Response.Write("<script>alert('发送成功!');window.close();</script>");
以上仅供为大家提供一个思路,还望高人多多指点.
),只好望而兴叹了。没办法只能从C#的角落里把Application再揪出来用用了.(尽管听他们说实现的效率比WebService差很多) 。呵呵,废话不说了,不过在高手面前班门弄斧还是有点脸红的,呵呵.
(1) 存入用户列表把用户名存入Application代码如下: string User=Server.UrlDecode(Request.QueryString["User"]);
Session["UserName"]=User;
Application["OnlineUser"]+=Session["UserName"].ToString()+",";
Response.Write("<SCRIPT>window.open('index.aspx','','left=800,scrollbars=yes,width=200,height=500');</SCRIPT>");
(2) 建框架页(index.aspx)
10秒钟自动刷新
TOPframe页
隐藏该框架,负责弹出消息框
Application[“message”]为客户留言内容,在发送留言页面对其赋值;
UserNameList提取接收人变量;
代码如下:
try
{
if(Application["message"]!="")
{
string UserNameList=this.Application["message"].ToString().Substring(this.Application["message"].ToString().IndexOf("对")+1,(this.Application["message"].ToString().IndexOf("说")-this.Application["message"].ToString().IndexOf("对")-1));
if (Session["UserName"].ToString()==UserNameList)
{
Response.Write("<SCRIPT>window.open('messagelist.aspx','','left=400,top=400,scrollbars=yes,width=400,height=300');</SCRIPT>");
}
}
}
catch
{}
mainframe页:显示客服人员列表:注意:在这里要判断一下,如果是客服人员则显示.如果是客户则不显示,客户记录Session["UserName"]时,用当前时间+随机数.在客户点击相应客服人员时把其存入Application用户列表,在这里不多叙述.
代码如下:string [] abc=Application["OnlineUser"].ToString().Split(',');
Label1.Text="在线人数列表:<br>";
for(int i=0;i<abc.Length;i++)
{
string UserList=abc[i].ToString();
Label1.Text+="<a href=# onclick=window.open('send.aspx?User="+UserList+"','','left=400,top=400,scrollbars=yes,width=400,height=200');>"+abc[i].ToString()+"</a><br>";
}
(3) 客户向客服发送消息: 此页与TOPFRAME页构成一收一发. Application["message"]=Session["UserName"]+"对"+User+"说:<br>"+message.Text;
Response.Write("<script>alert('发送成功!');window.close();</script>");
(4)接受消息与回复(messagelist.aspx)显示接收消息后,把消息清空
if(!Page.IsPostBack)
{
Label1.Text=Application["message"].ToString();
User1=Application["message"].ToString().Substring(0,Application["message"].ToString().IndexOf("对"));
Label2.Text=User1;
Application["message"]="";
}
回复发送人:
string User111=Label2.Text;
Application["message"]=Session["UserName"]+"对"+User111+"说:<br>"+message.Text;
Response.Write("<script>alert('发送成功!');window.close();</script>");
以上仅供为大家提供一个思路,还望高人多多指点.
相关文章推荐
- 直播项目,在线聊天功能--socket实现客户端和服务器端通讯的简单案例
- 在网站加入QQ在线状态,实现客服功能。
- ASP.NET中使用Application对象实现简单在线人数统计功能
- ASP.NET中使用Application对象实现简单在线人数统计功能
- 基于PHP实现一个简单的在线聊天功能
- iOS微信QQ聊天界面的UI框架以及Socket简单实现群聊功能
- APP内跳转QQ和陌生人聊天实现客服功能
- Java_GUI创建单机版QQ聊天小程序并实现简单的小功能(附所有源码)
- Android 集成阿里百川实现在线客服、聊天功能
- 如何实现点击按钮实现QQ在线联系客服聊天
- MVC实现类似QQ的网页聊天功能-Ajax(上)
- python运用jieba和wordcloud库简单实现对QQ聊天记录制作词云
- C# GDI+ 简单绘图 (三) 实现仿QQ截图功能
- QQ侧边栏功能简单实现,对初学者很适用,无序任何java代码即可实现
- 用DirectShow实现QQ的音视频聊天功能
- 网页中点击按钮弹出QQ聊天窗口的功能实现
- js实现网页在线聊天功能(三)
- PHP+swoole实现简单多人在线聊天群发
- 在个人网页中实现QQ在线联系的功能代码
- php异步操作(实现简单聊天功能)