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

📄 chatservice.ashx

📁 ajax+visalsdio2005实现的聊天室程序
💻 ASHX
字号:
<%@ WebHandler Language="C#" Class="ChatService" %>

using System;
using System.Web;
using System.Text;
using System.Web.Security;
using Cnblogs.Ajax;

public class ChatService : IHttpHandler {
    
    public void ProcessRequest (HttpContext context)
    {
        context.Response.ContentType = "text/plain";
		string action = context.Request.Params["action"];

		string userName = context.User.Identity.Name;

		if (!ChatRoom.Instance.UserIsChatting(userName))
		{
			FormsAuthentication.SignOut();
			context.Response.Write(
				"<script language='javascript'>location.href='Login.aspx';</script>");
		}
		else if (action == "send")
		{
			this.SendMessage(context);
		}
		else if (action == "users")
		{
			this.GetUsers(context);
		}
		else if (action == "get")
		{
			this.GetMessages(context);
		}
		else
		{
			this.UpdateUser(context);
		}

		context.Response.Flush();
		context.Response.Close();
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

	private void SendMessage(HttpContext context)
	{
		string message = context.Request.Params["msg"];
		string userName = context.User.Identity.Name;

		ChatRoom.Instance.SendMessage(userName, message);
	}

	private void GetUsers(HttpContext context)
	{
		StringBuilder sb = new StringBuilder("<ul>", 300);
		
		foreach (ChattingUser user in ChatRoom.Instance.GetAllUsers())
		{
			sb.Append("<li>" + context.Server.HtmlEncode(user.Name) + "</li>");
		}

		sb.Append("</ul>");
		
		context.Response.Write(sb.ToString());
	}

	private void GetMessages(HttpContext context)
	{
		StringBuilder sb = new StringBuilder(3000);

		foreach (ChatMessage chatMessage in ChatRoom.Instance.GetAllMessages())
		{
			string encodedUserName = context.Server.HtmlEncode(chatMessage.UserName);
			string encodedMessage = context.Server.HtmlEncode(chatMessage.Message);

			sb.Append("<b>" + encodedUserName + ": </b>" + encodedMessage + "<br />");
		}

		context.Response.Write(sb.ToString());
	}

	private void UpdateUser(HttpContext context)
	{
		string userName = context.User.Identity.Name;
		ChatRoom.Instance.GetUser(userName).Update();
	}

}

⌨️ 快捷键说明

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