📄 chatservice.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 + -