前些日子,在网上看到好多 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("
1<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("
1<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="在线人数列表:
1<br/>
";
for ( int i=0;i
1<abc.length;i++) +userlist+"','','left="400,top=400,scrollbars=yes,width=400,height=200');" label1.text+="<a href=# onclick=window.open('send.aspx?User=" string="" userlist="abc[i].ToString();" {="">"+abc[i].ToString()+"<br/>";
2
3}
4
5(3) 客户向客服发送消息 :
6
7此页与TOPFRAME页构成一收一发.
8
9Application["message"]=Session["UserName"]+"对"+User+"说:<br/>"+message.Text;
10
11Response.Write("<script>alert('发送成功!');window.close();</script>");
12
13(4)接受消息与回复(messagelist.aspx)
14
15显示接收消息后,把消息清空
16
17if (!Page.IsPostBack)
18
19{
20
21Label1.Text=Application["message"].ToString();
22
23User1=Application["message"].ToString().Substring(0,Application["message"].ToString().IndexOf("对"));
24
25Label2.Text=User1;
26
27Application["message"]="";
28
29}
30
31回复发送人 :
32
33string User111=Label2.Text;
34
35Application["message"]=Session["UserName"]+"对"+User111+"说:<br/>"+message.Text;
36
37Response.Write("<script>alert('发送成功!');window.close();</script>");
38
39以上仅供为大家提供一个思路,还望高人多多指点.</abc.length;i++)>