程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 聊天室實現私聊(四)

聊天室實現私聊(四)

編輯:ASP技巧

我曾經做過一個比較復雜的聊天室,幾乎擁有BBS聊天室的所有功能,但因為是用application做的,所以比較浪費資源。我覺得用數據庫做更可靠,更簡單。
可以設定這樣的一個數據庫chat,結構如下:

字段名 類型 長度 備注
1.. OBJECT CHAR 10 操作對象,ALL或某人 
2.. MSG CHAR 250 消息內容
3.. TIME DATETIME 發送時間
4.. SENDER CHAR 10 發送人
5.. ROOM CHAR 10 房間名,發送人所處房間 

在通常情況下OBJECT為ALL,當需要說悄悄話時可以指定某人。
顯示內容時,只要一句“Select * from chat where object='all' or object='" & session("userid") & "'"就可以了。Session(”USER ID“)是當前用戶的身份認證。
如此,每個用戶看到的聊天內容都是自己“應該”看到的。如果配合另外一些數據表,如ROOM,USER,則還可以完成諸如隱身、踢人、開房間、關房間、隱藏房間等功能,如果再加上一個表情配置文件EMOTE。TXT就可以做表情動作了。當然,這麼做就需要在發送信息是有一個解釋程序,用以判斷用戶輸入的是何種命令,並相應修改數據表。

roking:[email protected]

  先說一下整體構思:采用application對象保存所有聊天公用信息,如訪問者ID、房間狀態、公聊信息等,同時為每個人用Senssion對象保存和個人相關的信息,如:表情、顏色、談話目標ID等。
  用戶的顯示區從application對象中取出公聊信息並加上針對自己的私聊一同顯示。。。。


nikl:[email protected]

“悄悄話”只須用Application和Session兩個內建對象就可以輕松實現具體如下,希望能幫到忙!

在用戶登陸時分別為他建立獨立的Application & Session對象。例如有三個用戶nikl hero viki在他們登陸時用ASP的Request分別取得三個用戶名並存入一個變量(如name)然後作Session和Application的初始化:
Session("Uname")=name
Application(who)=""
耳語信息存在變量 say 中,交談對象存在who。例如:
nikl to viki : 你吃飯了嗎?
服務器端執行代碼,經過條件判斷後執行耳語傳入操作,談話內容“你吃飯了嗎?”及交談對象“VIKI”並分別賦於變量 say 和 who; 信息(你吃飯了嗎?)傳 入Application("viki")中了(代碼:Application(who)=say),目的用戶端只要刷新Application(Session"Uname")變量就可以看到信息了,程序結束。
請留意:
在VIKI端的<%=Application(Session("name"))%>實際是<%=Application(VIKI))%> (在VIKI登陸時Session("Uname")已定義為“VIKI”並存在浏覽器)因而,當信息內容框刷新時Session("Uname")將被“VIKI”替換,VIKI就可以看到NIKL發送來的耳語信息,而hero端<%=Application(Session("Uname"))%>實際是<%=Application(hero)%>這個變量是空的因而hero就看不到NIKL發送給VIKI的信息。就這樣巧妙地完成了一次耳語的傳送。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved