⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 onlinemessage.aspx.cs

📁 基于AJAX的聊天室,实现聊天信息的局部刷新
💻 CS
字号:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Data.SqlClient;
using System.Xml;
//using Model;

public class OnLineMessageInfo
{
    /// <summary>
    /// 消息的无参构造函数
    /// </summary>
    public OnLineMessageInfo()
    { }

    private string _content;
    /// <summary>
    /// 消息的内容
    /// </summary>
    public string Content
    {
        get { return _content; }
        set { _content = value; }
    }

    private string _to;
    /// <summary>
    /// 消息的发送都有
    /// </summary>
    public string To
    {
        get { return _to; }
        set { _to = value; }
    }

    private string _from;
    /// <summary>
    /// 消息的接受者
    /// </summary>
    public string From
    {
        get { return _from; }
        set { _from = value; }
    }

    private DateTime _time;
    /// <summary>
    /// 发送消息的时间
    /// </summary>
    public DateTime Time
    {
        get { return _time; }
        set { _time = value; }
    }

    private int _id;
    /// <summary>
    /// 短消息的ID号
    /// </summary>
    public int ID
    {
        get { return _id; }
        set { _id = value; }
    }
}

public partial class AjaxPage_OnLineMessage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string type = Request.QueryString["action"];

        if (type == null)
        {
            return;
        }

        if (type == "WriteMessage")
        {
        }
        else if (type == "GetCurrentUser")
        {
           // string currentUser = ((UserInfo)Session["User"]).LoginName;
            Response.Write(MakeXMLDocument("CurrentUser","UserInfo"));
            Response.End();
        }
        else if (type == "GetMessages")
        {
            string time = Request.QueryString["Time"];
            if (time != null)
            {
                string result = GetMessages(DateTime.Parse(time));

                Response.ContentType = "text/xml";
                Response.Write(result);
                Response.End();
            }
            else
            {
                Response.ContentType = "text/xml";
                Response.Write(MakeXMLDocument("请从正规入口进入本论坛","ReturnMessage"));
                Response.End();
            }
        }
        else if (type == "PostMessage")
        {
            string temp = "Fail";
            try
            {
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(Request.InputStream);
                XmlNode root = xmlDoc.FirstChild;

                OnLineMessageInfo oMsg = new OnLineMessageInfo();

                oMsg.Content = root.ChildNodes[0].InnerText;
                oMsg.To = root.ChildNodes[1].InnerText;
                oMsg.From = root.ChildNodes[2].InnerText;
                //oMsg.Time = DateTime.Parse(root.ChildNodes[3].InnerText);
                oMsg.Time = DateTime.Parse("2007-3-3");

                //将消息写入数据库
                //SaveOnLineMsg(oMsg);
                temp = "Sucess";
            }
            catch (Exception ex)
            {
                temp = ex.Message;
            }

            Response.ContentType = "text/xml";
            Response.Write(MakeXMLDocument(temp, "ReturnMessage"));
            Response.End();
        }
        else if (type == "GetAllUser")
        {

            //MembershipUserCollection users = Membership.GetAllUsers();
            //Response.Write(MakeXMLDocument(users));
            //Response.End();
        }
    }

    /// <summary>
    /// 生成XML文档字符串
    /// </summary>
    /// <param name="send"></param>
    /// <returns></returns>
    public string MakeXMLDocument(string send,string tagName)
    {
        StringBuilder xml = new StringBuilder();

        xml.Append("<Return>");
        xml.Append("<" + tagName + ">");
        xml.Append(send);
        xml.Append("</"+ tagName +">");
        xml.Append("</Return>");

        return xml.ToString();
    }

    /// <summary>
    /// 根据数据库中消息的记录将返回的消息写成XML文档
    /// </summary>
    /// <param name="oMsgs"></param>
    /// <returns></returns>
    public string MakeXMLDocument(IList<OnLineMessageInfo> oMsgs)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < oMsgs.Count; i++)
        {
            sb.Append("<MessageInfo>");
            sb.Append("<To>" + oMsgs[i].To + "</To>");
            sb.Append("<From>"+ oMsgs[i].From + "</From>");
            sb.Append("<Content>" + oMsgs[i].Content + "</Content>");
            sb.Append("<Time>" + oMsgs[i].Time.ToString() + "</Time>");
            sb.Append("</MessageInfo>");
        }
        sb.Insert(0, "<XMLDocument>");
        sb.Append("</XMLDocument>");

        return sb.ToString();
    }

    /// <summary>
    /// 针对当前的所有用户产生一个用户列表的XML的文档
    /// </summary>
    /// <param name="users"></param>
    /// <returns></returns>
    public string MakeXMLDocument(MembershipUserCollection users)
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < users.Count; i++)
        {
            sb.Append("<UserInfo>");
            sb.Append("<LoginName>");
            sb.Append("UserName");
            sb.Append("</LoginName>");
            sb.Append("</UserInfo>");
        }
        sb.Insert(0, "<XMLDocument>");
        sb.Append("</XMLDocument>");
        return sb.ToString();
    }

    public void SaveOnLineMsg(OnLineMessageInfo oMsg)
    {
        //iBee.BLL.OnLineMessage blloMsgs = new OnLineMessage();
        //blloMsgs.Insert(oMsg);
    }

    public string GetMessages(DateTime time)
    {
        //IList<OnLineMessageInfo> oMsgs = new List<OnLineMessageInfo>();

        //iBee.BLL.OnLineMessage blloMsgs = new OnLineMessage();
       //oMsgs = blloMsgs.SelectMsgByTime(time);

        IList<OnLineMessageInfo> oMsgs = new List<OnLineMessageInfo>();

        OnLineMessageInfo onlineMsg = new OnLineMessageInfo();
        onlineMsg.From = "From";
        onlineMsg.ID = 2;
        onlineMsg.Time = System.DateTime.Now;
        onlineMsg.To = "To";
        onlineMsg.Content = "This is a msg read from DB, but this is just a test";

        return MakeXMLDocument(oMsgs);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -