iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 25
0

直至目前為止

我們後端nodejs總共切成三個部分

  1. app.js
    提供主要的websocket server街口
  2. game_manager.js
    管理遊戲運作
  3. game_question.js
    提供題目,目前只提供假資料,所以先不介紹

前端只由一個game.vue 處理

相信我們還可以把功能拆成更細的模組
不過目前還是以快速開發為主,到後面我們再來優化他

app.js

這邊必須創建一個 websocket 服務

npm install websocket --save
//引入http websocket
const http = require('http');
const ws = require('websocket').server;

// 建立server 並監聽Port 9999
const PORT = 9999;
const server = http.createServer().listen(PORT)

const GAME_MANAGER = require('./request/game_manager')

// 產生websocketServer
webSocketServer = new ws({
  httpServer: server
});

//當使用者連入時 觸發此事件
webSocketServer.on('request', request => {
  let connection = request.accept('echo-protocol', request.origin);

  //當websocket server收到訊息時 觸發此事件
  connection.on('message', event => {
    let data = JSON.parse(event.utf8Data)
    console.log(`接收訊息${ JSON.stringify(data) }`)
    GAME_MANAGER(connection, data)
  });

  //當使用者socket連線中斷時 例如:關閉瀏覽器 觸發此事件
  connection.on('close', (reasonCode, description) => {
    console.log('connection close.');
  });
});

上一篇
超快速30秒nodeJs前端+後端 開發環境建置
下一篇
創建 (Game Manager
系列文
GAME30天30

尚未有邦友留言

立即登入留言