socket.io框架是用於網頁中實時通訊,通常用於開發聊天室等實時性較強的系統模塊node
一開始從官網http://socket.io/上down了一個demo下來,這個demo裏面只有基本的收發消息的功能,而後我在這個基礎上加上了用戶設置暱稱、私信用戶、上線下線及當前在線人數提醒功能git
github地址:https://github.com/FujiBilly/SocketIO.gitgithub
爲了更方便的調試代碼,決定在如今的基礎上添加gulp構建工具的輔助功能web
主要是gulp-livereload和gulp-nodemon這兩個功能,其中gulp-livereload主要是當文件發生改動時對網頁進行刷新,gulp-nodemon主要是當文件發生改動時從新啓動服務端,即分別對先後端進行重啓。chrome
爲配合gulp-livereload功能的實現,需先在瀏覽器中 安裝LiveReload拓展程序 和 在Sublime Text中安裝LiveReload包:gulp
nodemon命令能夠直接在終端下像node命令那樣使用,而我是在gulpfile.js文件中使用nodemon的,代碼以下後端
nodemon({ script: 'index.js' });
至關於終端下的 nodemon index.js 命令瀏覽器
注意:在安裝使用gulp-nodemon的時候遇到一個大坑,如果你全局安裝了nodemon後,你在項目文件夾中會發現nodemon失效了,這是由於全局安裝了nodemon後它只是監視全局路徑下文件的改動,而不是你項目文件夾中的文件改動,因此不當心全局安裝了nodemon以後能夠在/usr/local/lib/node_modules/nodemon/下把該文件夾刪除,還有/usr/local/bin/nodemon文件也一併刪掉。但有時候仍是不行,會出現[nodemon] Internal watch failed: watch (your watching path) ENOSPC這種錯誤,最後才醒悟,Linux監視文件的改動須要有權限,因此在啓動命令以前加上sudo便可。app
以後以爲單單的幾個文件使得結構不太清晰,因此在原來功能的基礎上整合了Express框架!!!框架
整合的時候有幾個要注意的地方: