Đăng ký vps giá rẻ, tên miềndomain. Việc kiểm tra và mua tên miền giá rẻ, domain giá rẻ, hosting giá rẻ, máy chủ ảo giá rẻserver giá rẻ chỉ với 2 bước đơn giản. Giúp bạn tiên phong trong kinh doanh Online

Asp.net
 9ecva.com - 9e Chu Van An Forever : Asp.net
Tiêu đề Chủ đề: Tạo ứng dụng Chat Trên mạng bằng ASP.NET 2.0 Trả lời bài viếtGửi bài viết mới
Tác giả
Nội dung << Chủ đề trước | Chủ đề kế tiếp >>
DUCVINH83
Administrator
Administrator
Avatar
Không ngừng học hỏi !

Ngày gia nhập: 01/11/2005
Giới tính:
Đến từ: Vietnam
Trạng thái:
Bài viết: 365
Tiền: 738$
Địa chỉ e-mail: Gửi mail
Yahoo! IM: Yahoo! IM
Sinh nhật: 17/02/1983
Cảnh cáo: (0%)
Minus 1 warningCurrent warnlevel: 0%Add 1 warning
Ngày gửi: 12/11/2009 lúc 4:04 chiều | Đã khóa IP Trích dẫn DUCVINH83

Giới thiệu ứng dụng chat viết bằng ASP.NET 2.0. Tuy nhiên quy mô của ứng dụng này quá nhỏ, vì vậy mình sẽ không dùng CSDL mà thay vào đó sẽ dùng mảng để lưu dữ liệu.

Dưới đây là giao diện của khung chat. Mình ko để hiển thị các kênh chat, vì vậy mà khi đăng nhập vào phòng chat để kiểm tra hoạt động của ứng dụng, các bạn nên nhớ các Channel chat trùng tên nhau.

Trở lại với ứng dụng, như đã nói từ đầu, mình sẽ dùng mảng để lưu các đoạn chat. ở đây, mình sẽ chỉ lưu tối đa là 200 dòng. nếu quá 200 dòng thì mình sẽ xóa đi 10 dòng đầu tiên. Tất cả thao tác với dữ liệu mình viết trong lớp Chat.cs. nếu mà kết nối với CSDL thì lớp này sẽ không cần thiết nữa. nội dung của lớp đó như sau:

namespace SimpleChatroom.pageChatRoom
{
    public class Chat
    {
        static protected ArrayList pArray = new ArrayList();

        /// <summary>
        /// Chèn dữ liệu và kiểm tra xem có vượt quá 200 dòng ko, nếu vượt qua thì xóa 10 dòng đầu.
        /// </summary>
        /// <param name="sDealer"></param>
        /// <param name="sUser"></param>
        /// <param name="sMsg"></param>
        static public void AddMessage(string sDealer, string sUser, string sMsg)
        {
             string sAddText = sDealer + "~" + sUser + "~" + sMsg;
             pArray.Add(sAddText);

             if (pArray.Count > 200)
             {
                 pArray.RemoveRange(0, 10);
             }
        }

        /// <summary>
        /// Lấy tất cả dữ liệu.
        /// </summary>
        /// <param name="sDealer"></param>
        /// <returns></returns>
        static public string GetAllMessages(string sDealer)
        {
             string sResponse = "";

             for (int i = 0; i < pArray.Count; i++)
             {
                 sResponse = sResponse + FormatChat(pArray.ToString(), sDealer);
             }

             return (sResponse);
        }

        /// <summary>
        /// Định dạng chuỗi
        /// </summary>
        /// <param name="sLine"></param>
        /// <param name="sDealer"></param>
        /// <returns></returns>
        static private string FormatChat(string sLine, string sDealer)
        {
             int iFirst = sLine.IndexOf("~");
             int iLast = sLine.LastIndexOf("~");

             string sDeal = sLine.Substring(0, iFirst);
             if (sDeal != sDealer)
                 return ("");

             string sUser = sLine.Substring(iFirst + 1, iLast - (iFirst + 1));

             string sMsg = sLine.Substring(iLast + 1);

             string sRet = "<STRONG>" + sUser + ": </STRONG>" + sMsg + "<BR>";

             return (sRet);
        }
    }
}

Bạn nhớ chú ý tên của Namespace nhé vì nó có liên quan đến việc gọi hàm sau này.

trước khi vào phòng Chat, ta sẽ phải qua một bước đăng nhập. sau đó mới chuyển đến kênh chat.

Response.Redirect("AppChat.aspx?Channel=" + txt_Channel.Text + "&User=" + txt_User.Text);

có 2 tham số đi kèm là Channel và User để biểu thị kênh chat và tên người chat.

Khi được chuyển đến kênh chat, ta sẽ kiểm tra xem đã có kênh chat nào chưa trong hàm Page_Load().

protected void Page_Load(object sender, EventArgs e)
        {
             if (Page.IsPostBack == false)
             {
                 if (Request.Params["Channel"] != null)
                     Session["ChatChannel"] = Request.Params["Channel"].ToString();
                 else
                     Session["ChatChannel"] = "1";
             }
        }

sau đó, ta chỉ cần viết lệnh xử lý sự kiện click và xong.

        protected void btnSend_Click(object sender, EventArgs e)
        {
             string sChannel = "";
             string sUser = "";

             if (Request.Params["Channel"] != null)
                 sChannel = Request.Params["Channel"].ToString();
             else
                 sChannel = "1";

             if (Request.Params["User"] != null)
                 sUser = Request.Params["User"].ToString();
             else
             {
                 Random pRan = new Random();
                 int iNum = pRan.Next(9);
                 sUser = "Annonymouse" + iNum;
             }

             if (txtToSend.Text.Length > 0)
             {
                 pageChatRoom.Chat.AddMessage(sChannel, sUser, txtToSend.Text);
                 txtToSend.Text = "";
             }

        }
    }

Bạn có thể download mã nguồn tại đây.

Theo zensoft


 



Được sửa bởi DUCVINH83 trên diễn đàn 12/11/2009 lúc 4:10 chiều


__________________

YM: DUCVINH83
0912 822334


Lên trên Xem DUCVINH83's Thông tin cá nhân Tìm những bài viết khác của DUCVINH83 Ghé thăm DUCVINH83's Trang chủ
 

Nếu bạn muốn trả lời thì trước tiên bạn phải đăng nhập
Nếu chưa đăng ký thì bạn hãy đăng ký

  Trả lời bài viếtGửi bài viết mới
Xem trang in Xem trang in

Di chuyển nhanh
Bạn không thể tạo đề tài mới
Bạn không thể trả lời bài viết
Bạn không thể xoá bài viết bạn đã gưi
Bạn không thể sửa bài viết bạn đã gửi
Bạn không thể tạo bình chọn
Bạn không thể bình chọn



Trang này được tạo ra trong 0.1875 giây.
cheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salecheap jordans for salesac longchamp pas chergucci outlet

baomang.net  9ecva.com © 2007 - Phát triển bởi Trịnh Đức Vinh