技術共學|來開發一個即時的多人聊天網頁與繪圖白板吧!

簡介

不知道你有沒有開發多人線上遊戲的夢呢?然後即時同步的問題卻卡住了你

如何將所有人的資料同步給所有人的電腦上,在該如何實現呢?

又或你已經略知一二,卻不知如何下手。

如果你有上述問題,那這堂課正是為你而準備!

我們將帶你深入淺出有關於 SocketIO 的基礎知識

從 0 到 100 搭出一個簡單的即時多人聊天網頁,為你的 sideproject 添上一筆。

課程影片

本課程以剪輯成全字幕教學

建議透過該影片學習

https://www.youtube.com/watch?v=ssmEkPq8txA

課程程式碼

https://github.com/SR0725/socketio-course

課程成品預覽

https://socketio-course.ray0725.repl.co/

課程使用技術

1. JavaScript

2. SocketIO

3. Canvas

4. 非常少量的 ExpressJs

課前提醒

我預估 7: 50 附近,會暫時離開 10 分鐘,就當是休息時間 XD

第一章

何謂 SocketIO

如果想讓前端跟後端互相傳送資料,我們可能會用 fetch 或 axios 來取得或傳送資料給後端

但如果想做到雙方即時的不間段通訊,SocketIO 會是當中一個非常好的技術來實踐這件事情

如果想理解更多,可以參考 socket.io 的通訊協定基礎 WebSocket。

開始

先建立一個空資料夾來前端與後端的檔案,打開資料夾,並在上方的位置列上輸入 cmd

<img height="0" width="0" src="https://res.cloudinary.com/diwnwuvcu/image/upload/f_auto,c_limit,w_1125,q_auto/nmfpofekpby91xwvggeq" />

點擊 Enter 即可開啟指向該路徑的小黑窗

<img height="0" width="0" src="https://res.cloudinary.com/diwnwuvcu/image/upload/f_auto,c_limit,w_537,q_auto/dsnho6mqdehxzraos1gb" />

我們現在要來 **Vite** 這個工具建立前端的專案檔

何謂 Vite

在前端開發的路上,荊棘不斷,前人設計了各種工具好讓後輩在這條路上走得更順利點

與過往純粹寫 HTML、JS 檔案不同,今天的課程將使用 Vite 這個前端建置工具

有關於 Vite 是什麼?他的細節,這個是可以單獨再用三個小時去解釋的,這並不會在本堂課的內容裏頭。

今天,我只會帶大家去使用這個工具,並且直接去感受 Vite 帶給我們的美好

建置前端專案

在剛剛開起的小黑窗中輸入

npm create vite@latest

他會跳出以下訊息,這邊是要你輸入專案名稱,這邊我使用 frontend 來作為我的專案名稱

? Project name: » vite-project

再來會詢問你使用什麼框架,我們沒有要使用任何框架,選擇`Vanilla`表示原生的 JS

<img height="0" width="0" src="https://res.cloudinary.com/diwnwuvcu/image/upload/f_auto,c_limit,w_551,q_auto/hopga5opm1ar4vldkxxx" />

這裡是詢問使用什麼語言,我們這堂課不會使用 TypeScript,所以選擇 JavaScript

<img height="0" width="0" src="https://res.cloudinary.com/diwnwuvcu/image/upload/f_auto,c_limit,w_547,q_auto/rpr8swsmj88h9uksqsfx" />

最後他會建立一個叫做 frontend 的資料夾並跳出以下訊息

```

Done. Now run:

cd frontend

npm install

npm run dev

喜歡這篇文章嗎?
歡迎給我一點支持!