有別於http請求,websocket是一個雙向請求,伺服器能主動跟客戶端去做溝通。
這個作品的小demo是透過ws這個套件搭配前端手刻html製作的,可以在同一台電腦中開許多分頁來模擬不同用戶的聊天室對話。
當然!也有做基本的防呆,原本有一個小問題是,今天server端接收到一個Message請求後,會回傳給每一個開啟了這個ws的client,而我們則需要想辦法去做辨識,知道哪一個使用者是訊息的「發出者」、而哪一「些」使用者則是這些訊息的「接收者」,這是一個很有趣的一件事情,我的解法是去抓req裡面的header做ID,其實是可以透過bcrypt去做加密,但這影響不太大,所以就我就沒有做,然後使用者的名稱也需要在connect 時去建立,並讓其他使用者知道 用戶+1(當然disconnect時也需要-1)
講了這麼多,就直接來玩玩看吧!
npm i
npm run server
理想上應該可以成功打開你的8080 PORT
接著進入到index.html裡面按下go live
按下上面的start chat,你就成功透過本地的local server建立一個用戶囉!
你也可以修改上面的名字(default是anonymous),但同名自也不會出錯,因為畫面渲染是認ID的!!!
開啟兩個分頁來玩玩看對話視窗!