台灣最大程式設計社群網站
線上人數
1980
 
會員總數:245979
討論主題:189557
歡迎您免費加入會員
討論區列表 >> ASP.NET >> MVC 陽春聊天室功能 無資料庫
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
MVC 陽春聊天室功能 無資料庫
價值 : 100 QP  點閱數:800 回應數:6
樓主

陳柏志
門外漢
0 1
55 2
發送站內信

捐贈 VP 給 陳柏志
最近在練習MVC專案練習,是製作一個簡易的聊天室,目前登入是輸入名字,然後驗證名字就好不必使用資料庫,再來就是想輸入聊天內容POST到controller存進陣列裡,之後透過另一個分頁顯示出來(聊天室是由3個分頁組成一個主頁,分別是輸入文字與按鈕、聊天室、在線列表),但把文字POST到controller之後我再來都沒辦法達成輸入幾段句子讓他們通通傳上去,不知道各位前輩有沒有什麼方法或建議





搜尋相關Tags的文章: [ MVC ] , [ 聊天室 ] ,
本篇文章發表於2018-07-26 22:03
1樓
不錯的參考

topcat
捐贈 VP 給 topcat 檢舉此回應
其實
聊天室的技術關鍵,在於『即時從Server端,廣播到所有線上的Client端』

這部分,要用到ASP.NET的SignalR這個服務

網路上蠻多範例的,建議您搜尋關鍵字『MVC SignalR 聊天室』
就可以找到許多範例可供參考

^_^
本篇文章回覆於2018-07-27 09:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

MIS2000 Lab
檢舉此回應
最傳統的「狀態管理」
可以透過 Application做一個聊天室 :-)

本篇文章回覆於2018-07-28 22:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

小魚
檢舉此回應
不用資料庫,驗證名字是在記憶體中嗎?
本篇文章回覆於2018-07-29 09:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

陳柏志
捐贈 VP 給 陳柏志 檢舉此回應
因為這次主要是著重在session以及appliccation的練習,所以signir可能不是我想了解的,不過未來還是會去試試看用signir

目前我是把字串都存到檔案,在讀檔切字串傳回view裡做呈現,然後登入是用session,後來發現有application,所以想試試看用application來統計目前登入的人,於是我在global裡宣告application[visit]=0; 之後分別在登入跟登出的地方做+1 -1的動作,但我用兩個網頁做測試發現他們還是獨立分開計算,這跟我原本想得不太一樣,我在想是不是每開一個新網頁都會跑一次application[visit]=0; 所以每個網頁的初始值都會是0,但我想要有累加的效果,不知道有什麼方法可以解決
本篇文章回覆於2018-07-30 11:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

陳柏志
捐贈 VP 給 陳柏志 檢舉此回應
驗證的部分我做的很陽春,只要名字不是空值就好,並且把註冊登入做在一起,只要輸任隨意字串就可以登入
本篇文章回覆於2018-07-30 11:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
Session是『單一專案、單一使用者』跨頁共享
Applicaion則是『單一專案』、『所有』使用者共享

但,Application的內容,要看到他改變,需要重新去『取得(Request)』才會看得到
並不會從Server端主動推送給Client端使用者

要主動推送,則是可以透過SignalR來推送

---------------------------------------------------
如果樓主想學Session與Application的概念
聊天室不是很適合(牽涉的東西相對多)
『線上使用者統計』這題目比較合適

------------------------------------------------------------
我在global裡宣告application[visit]=0; 之後分別在登入跟登出的地方做+1 -1的動作,但我用兩個網頁做測試發現他們還是獨立分開計算,這跟我原本想得不太一樣,我在想是不是每開一個新網頁都會跑一次application[visit]=0; 所以每個網頁的初始值都會是0,但我想要有累加的效果,不知道有什麼方法可以解決


Application的初始值
建議應該是要寫在Global.asax的『Application Start』事件中
這樣才會在專案『第一次』被啟動時,才會觸發事件,設定初始值
之後專案再次被呼叫,就不會觸發
^_^

本篇文章回覆於2018-07-30 13:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.