問題:就是在網(wǎng)站的首頁做一個(gè)類似于QQ聊天界面的功能,不用很復(fù)雜,只要顯示用戶頭像和發(fā)送的內(nèi)容就行,也不用做聊天的記錄。只要實(shí)時(shí)顯示最新的20條記錄即可?
個(gè)人思路:由于功能比較單一,不是很復(fù)雜,而且顯示的內(nèi)容只需要最新的20條,所以我打算用,AJAX輪詢的方法去做,當(dāng)用戶輸入聊天記錄后,把記錄存入數(shù)據(jù)庫(AJAX輪詢實(shí)時(shí)讀取數(shù)據(jù)庫數(shù)據(jù)),然后獲取數(shù)據(jù)后,顯示在頁面上。請問這么做可以嗎?這樣做,多個(gè)人聊天時(shí)會(huì)不會(huì)出現(xiàn)什么問題呢?比如數(shù)據(jù)顯示在頁面上時(shí)會(huì)很慢什么的?
websoket可以用來做這個(gè),但是沒用過,也不知道可不可以在windows服務(wù)器上使用(項(xiàng)目部署在windows上的)。
問題來了:請問各位有沒有什么好的簡單的方法呢?給點(diǎn)意見唄?。。?!
Following the voice in heart.
websocket
或者socket.io
就可以實(shí)現(xiàn)了, 這個(gè)和操作平臺關(guān)系不是很大, 和你實(shí)現(xiàn)的web服務(wù)程序關(guān)系比較大, 因?yàn)槟愕眠x擇一個(gè)一個(gè)web程序支持websocket
或者socket.io. 我之前用
node.js`實(shí)現(xiàn)過, 也是參考網(wǎng)上的例子, 你也可以參考下
Node.js + Web Socket 打造即時(shí)聊天程序嗨聊
AJAX輪詢的話,多人聊天時(shí)候,每個(gè)終端都得不斷去請求數(shù)據(jù)庫數(shù)據(jù),有以下幾個(gè)缺點(diǎn):
由于請求次數(shù)比較多,會(huì)增加服務(wù)器的壓力。
AJAX輪詢本身比較慢
由于瀏覽器對于同一個(gè)域名下的AJAX請求數(shù)量有限制,所以數(shù)據(jù)交互的效率還是挺低的。
如果用WebSocket的話,我建議用nodeJS
的ws
做一個(gè)廣播服務(wù),可以掛起在Windows后臺,也可以隨意移植,相當(dāng)方便,用到的庫是這個(gè):https://www.npmjs.com/package/ws
不得不說,NodeJS
寫的東西無論的可移植性、擴(kuò)展性還是兼容性都是挺不錯(cuò)的。
具體操作就不說了,可以參見ws
包的broadcase example
示例來寫。