時間:2020-02-02來源:系統城作者:電腦系統城
最近看到一些關于websocket的東西,就決定寫一個在線聊天室嘗試一下。最終決定配合vue來寫,采用了官方的vue腳手架vue-cli和官方的router,在本例中呢,我是用了CHAT這個對象來存儲app的數據的,但后來一想,雖然項目很小,但如果用官方的vuex會更好,方便以后擴展,比如可以加上私信功能,可以在對方不在線的時候緩存發送的消息,這些都是可以的。(現在比較尷尬的就是,我把聊天室寫好放到公眾號號redream里,但是很少有人會同時在線,所以你會經常發現你進去的時候只有你一個人,就導致群聊不起來)
1.好吧,先來看一下我們的效果圖
2.用到的一些東西
nodejs node服務器運行環境
express 搭建node服務器
websocket 本例核心,推送服務器消息到所有人
socketio websocket第三方庫
vue + router 視圖層雙向數據綁定框架,用來簡化開發、組件化開發的
es6語法 就是好用簡潔哈哈
https 因為像websocket和很多h5的新功能,瀏覽器為了安全起見都僅支持https下開發 關于nodejs搭建express服務器可以看這里我就是在這里學的,代碼里也借鑒了很多,關于搭建https服務器就不簡介了,內容太多,推薦阿里云一年的免費證書,可以訪問我的站點查看
3.代碼架構簡介
server里是需要運行在node服務器上的js文件,監聽websocket連接
src/api/client是客戶端連接服務器的核心js
src/components下是頁面的組件。我分成了三大部分,login組件(登錄頁面),chat組件(聊天頁面),groupinfo組件(群信息頁面),其實是單頁應用,反應速度更快,接近原生app,只不過用router聯系在了一起。像chat組件,又又head、body、foot組件組成,組件化是很好的習慣和架構方式,條理清晰,而且在大項目里很多可以復用。 具體都在代碼了,大家可以下載下來在本地跑一跑。
4.運行代碼
install dependencies
npm install
serve with hot reload at localhost:8080
npm run devbuild for production with minification
npm run build
這是在我站點上跑著的例子,大家可以看一看,在手機上效果更加,最近校招比較忙,就花了兩天,沒考慮兼容,歡迎大家提出意見。
官方網址:https://github.com/secreter/websocket_chat
文件打包下載:vue_websocket_chat.zip
2020-11-11
Vue3 響應式偵聽與計算的實現2020-10-19
詳解mybatis-plus配置找不到Mapper接口路徑的坑2020-10-19
SpringBoot下使用MyBatis-Puls代碼生成器的方法