javascript - 問一個在web頁面做一個即時通訊功能的問題? ?
typecho
typecho 2017-06-28 09:22:36
0
2
649

問題:就是在網站的首頁做一個類似QQ聊天介面的功能,不用很複雜,只要顯示使用者頭像和發送的內容就行,也不用做聊天的記錄。只要即時顯示最新的20筆記錄即可?

#個人想法:由於功能比較單一,不是很複雜,而且顯示的內容只需要最新的20條,所以我打算用,AJAX輪詢的方法去做,當用戶輸入聊天記錄後,把記錄存入資料庫(AJAX輪詢即時讀取資料庫資料),然後取得資料後,顯示在頁面上。請問這麼做可以嗎?這樣做,多個人聊天時會不會出現什麼問題呢?例如數據顯示在頁面上時會很慢什麼的?

websoket可以用來做這個,但是沒用過,也不知道可不可以在windows伺服器上使用(專案部署在windows上的)。

問題來了:請問各位有沒有什麼好的簡單的方法呢?給點意見唄! ! ! !

typecho
typecho

Following the voice in heart.

全部回覆(2)
为情所困

websocketsocket.io就可以實現了, 這個和操作平台關係不是很大, 和你實現的web服務程序關係比較大, 因為你得選擇一個web程序支持websocketsocket .io. 我之前用node.js`實現過, 也是參考網上的例子, 你也可以參考下
Node.js + Web Socket 打造即時聊天程式嗨聊

小葫芦

AJAX輪詢的話,多人聊天時候,每個終端都得不斷去請求資料庫數據,有以下幾個缺點:

  1. 由於請求次數比較多,會增加伺服器的壓力。

  2. AJAX輪詢本身比較慢

  3. 由於瀏覽器對於同一個網域下的AJAX請求數量有限制,所以資料互動的效率還是挺低的。

如果用WebSocket的話,我建議用nodeJSws做一個廣播服務,可以掛起在Windows後台,也可以隨意移植,相當方便,用到的庫是這個:https://www.npmjs .com/package/ws
不得不說,NodeJS寫的東西無論的可移植性、擴展性還是兼容性都是挺不錯的。

具體操作就不說了,可以參考ws包的broadcase example範例來寫。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!