国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

聊天室實現私聊(四)

2019-11-18 22:45:37
字體:
來源:轉載
供稿:網友


群言

sense



   我曾經做過一個比較復雜的聊天室,幾乎擁有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:roking@21cn.com

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


nikl:nikl@163.net

“悄悄話”只須用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的信息。就這樣巧妙地完成了一次耳語的傳送。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万年县| 资阳市| 镇安县| 乐陵市| 宝山区| 紫阳县| 泸西县| 拜城县| 临澧县| 盐城市| 平远县| 温宿县| 岐山县| 张家口市| 子长县| 阿拉善左旗| 屯昌县| 昌江| 启东市| 大丰市| 平遥县| 景谷| 西昌市| 徐汇区| 兴仁县| 巢湖市| 乌苏市| 阿荣旗| 灵璧县| 茶陵县| 阿拉善盟| 北川| 德保县| 县级市| 霍邱县| 永宁县| 临海市| 惠安县| 西和县| 张家口市| 南木林县|