首先附上我的github地址,https://github.com/jiangzhenfei/five,線上實例:http://47.93.103.19:5900/client/
線上實例,你可以隨意起用戶名,房間號,然后讓你同事或者自己再打開一個網頁,輸入任意用戶名,但是房間號一樣才可以進入同一個房間對戰
本地運行,拷貝代碼,npm install依賴,進入server文件夾,執行 node index.js,然后直接在頁面打開client里面的index.html文件夾即可
詳細的源碼和解釋都是在那里,本次實現的是五子棋線上對戰,
技術點:
1.client/chess.js 該文件是五子棋算法,算法也很簡單,棋盤的每一行個數一樣,那么當你落子那一刻(左邊為 x ),該左邊邊上的坐標都是知道的,比如我一行11個子,那么該落子右邊為x+1,左邊x-1,正頭頂x-11,正下方x+11,左上x-10 ...,於是我們只要計算包括該落子在內的米子線上是否滿足5個,下面我舉一條線上算法,一條線上只要滿足圖中5個情況的一個即為該棋子贏了

2.后端在server文件夾,使用socket.io長連接持續推送給前端,要點是使用發布訂閱模式,訂閱一個房間的用戶,給該房間的用戶信息同步。
3.client/checkerboard.js 該文件是使用canvas繪制棋盤
4.client/resolve.js 該文件是頁面操作處理,包括進入房間,棋盤點擊,棋子渲染
5.server/index.js 該文件是后端處理,包括房間的訂閱,房間信息的同步
6.server/subscrible.js 該文件是發布訂閱模式代碼
