1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

用Application轻松实现在线客服

本帖由 notnull2006-06-03 发布。版面名称:新人报道

  1. notnull

    notnull New Member

    注册:
    2005-09-27
    帖子:
    11,720
    赞:
    37
    (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.ToString();
    Label1.Text+=";a href=# onclick=window.open('send.aspx?User="+UserList+"','','left=400,top=400,scrollbars=yes,width=400,height=200');;"+abc.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;");
    以上仅供为大家提供一个思路

    一般现在的系统都用XML来实现,Application实现的效率要比WebService差很多
     
  2. amt

    amt New Member

    注册:
    2005-12-13
    帖子:
    8,582
    赞:
    67
    死鱼发飚了
     
  3. notnull

    notnull New Member

    注册:
    2005-09-27
    帖子:
    11,720
    赞:
    37
    不是偶写的
    偶只是转上来了
    偶只用asp写了个
    嘿嘿
    53KF的是PHP的
    我用ASP做的,和他那个类似
     
  4. hotlt.com

    hotlt.com New Member

    注册:
    2006-06-06
    帖子:
    3
    赞:
    0
    有演示没,这里不少落伍的兄弟吧