問題:就是在網站的首頁做一個類似QQ聊天介面的功能,不用很複雜,只要顯示使用者頭像和發送的內容就行,也不用做聊天的記錄。只要即時顯示最新的20筆記錄即可?
#個人想法:由於功能比較單一,不是很複雜,而且顯示的內容只需要最新的20條,所以我打算用,AJAX輪詢的方法去做,當用戶輸入聊天記錄後,把記錄存入資料庫(AJAX輪詢即時讀取資料庫資料),然後取得資料後,顯示在頁面上。請問這麼做可以嗎?這樣做,多個人聊天時會不會出現什麼問題呢?例如數據顯示在頁面上時會很慢什麼的?
websoket可以用來做這個,但是沒用過,也不知道可不可以在windows伺服器上使用(專案部署在windows上的)。
問題來了:請問各位有沒有什麼好的簡單的方法呢?給點意見唄! ! ! !
websocket
或socket.io
就可以實現了, 這個和操作平台關係不是很大, 和你實現的web服務程序關係比較大, 因為你得選擇一個web程序支持websocket
或socket .io. 我之前用
node.js`實現過, 也是參考網上的例子, 你也可以參考下Node.js + Web Socket 打造即時聊天程式嗨聊
AJAX輪詢的話,多人聊天時候,每個終端都得不斷去請求資料庫數據,有以下幾個缺點:
由於請求次數比較多,會增加伺服器的壓力。
AJAX輪詢本身比較慢
由於瀏覽器對於同一個網域下的AJAX請求數量有限制,所以資料互動的效率還是挺低的。
如果用WebSocket的話,我建議用
nodeJS
的ws
做一個廣播服務,可以掛起在Windows後台,也可以隨意移植,相當方便,用到的庫是這個:https://www.npmjs .com/package/ws不得不說,
NodeJS
寫的東西無論的可移植性、擴展性還是兼容性都是挺不錯的。具體操作就不說了,可以參考
ws
包的broadcase example
範例來寫。