利用AJAX和ASP.NET實現簡單聊天室

來源:互聯網
上載者:User

介紹

我的第一個簡單的Chat room 是用ASP 3.0 寫成的。那無外乎有二個TextBox,他們發送 訊息給程式變數然後顯示在一個每秒重新整理的頁面上。在那個時代,一個真正的聊天室必須運 用Java Applet或ActiveX control。不過這一切都在AJAX到來之後改變了。AJAX是一個結合 了XML 和 JavaScript的非同步通訊機制。現在我們可以只用伺服器代碼和一點JavaScript 。 這篇文章就是介紹如何用AJAX技術來構建一個簡單的聊天室。

樣本程式

樣本程式是一個單一的多使用者聊天室。其內部維護著一個已登入使用者的列表。列表將祛 除session到期的使用者。同時它還支援一些命令比如 /admin Clear 清除聊天室 /nick [Name] 改變使用者姓名。

你還需要知道

這個程式使用一個類叫做 ChatEngine 。 這個類控制了全部的使用者和訊息。使用者被儲存 在一個Hashtable 裡,而訊息儲存在 StringCollection 裡:

Hashtable users;StringCollection chat;

一個 ChatEngine 的全域執行個體被放置在 Global.asax.cs :

public static UChat.ChatEngine.IChatEngine Engine =new UChat.ChatEngine.ChatEngine();

一個JavaScript 函數用來非同步將全域變數內的資料顯示在頁面上:

function setTimers(){timeID = window.setTimeout( "updateAll()", refreshRate );}

利用每個使用者提供的名稱和ID來標識使用者:

public void AddUser(string id, string user){//make sure user name does not exist alreadyif( !UserExists( user ) ){//add user to users listusers.Add( id, user );//display a notification message to all users chat.Add( this.MakeServerMessage(string.Format(joinedfmt, user ) ));}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.