Photon Server Deploy (基礎部署)


在前兩篇中建立好 server 的執行個體與 SQL server 的執行個體之後,這篇要開始進行 Photon Server 的基礎部署。 這邊會跳過 Photon Server 的一些介紹直接開始,所以想看架構等等的請各位在自己前往官網文件哦。




開始

首先第一個要做的就是透過上次下載的 RDP 檔案登入 Server 執行個體。

小小前置作業

  • 安裝 Visual Studio - 這邊我是裝 2015。
  • 安裝 Chrome - 這是我的習慣啦,若是習慣 IE 可以跳過。

Step 1 下載 SDK 與基本啟動測試

在 SDK 的下載頁面可以看到如下圖,上面的紅框是要你去拿免費的授權檔,沒有它就算下載完畢也無法正常啟動。所以在點選第二個紅框下載 SDK 時,請記得點設定畫面下載免費的授權檔
  1.png 

進入設定畫面時會要你輸入電子郵件和密碼,登入後會看到下圖,請下載 100 ccu 作為免費試用。   2.png

此時 SDK 應該早就下載完成,將它解壓縮,若你下載的位置都相同會如下圖。
  3
  1. SDK 解壓縮之後的資料夾
  2. 100 ccu 免費授權檔
  3. 下載下來的 SDK

現在,將免費授權檔放到 Photon 資料夾下的 deploy/bin_Win64 資料夾中,如下圖。
  4

放置好了之後我們點擊5.png,來啟動 Photon Server,在桌面視窗的右下角會看見一樣的小圖示,右鍵他選擇 LoadBalancing (MyCloud) 再點選 Start as application ,這樣預設的程式就啟動了。
  6 

啟動後,可以參照上面那張圖的下方,有個 Run Testclient (LoadBalancing),若啟動成功會和下面的圖相同。
  7.png

Step 2 建置自己的 Photon Server 伺服器類別庫

這邊只作簡單的連線測試,並不撰寫其他複雜的邏輯。首先,先打開你的 Visual Studio,開新專案,類型選擇類別庫 。(因為需要的是 dll )
  8

好了之後把預設的 class1 刪除,並在方案總管的地方加入 5 個參考,此 5 個檔案的位置在 Photon Server 的 lib 資料夾下,若還是不清楚可參照下圖。
  • ExitGames.Logging.Log4Net.dll
  • ExitGamesLibs.dll
  • log4net.dll
  • Photon.SocketServer.dll
  • PhotonHostRuntimeInterfaces.dll
9.png

好了之後,加入一個類別,作為伺服器應用程式的類別,請自己命名自己可以辨別的,我是
命名 XXXServer。 (加入using、繼承ApplicationBase,自動實作),完成會如下圖。

  10
  • CreatePeer - 當有新 Clinet 連線到 Server 時就需要創建一個新 Peer,Peer 用來接收 Client 發送過來的請求傳遞資料,有點類似專屬通道的感覺。所以在 Peer 被創建時最好把它收起來,避免遺失的麻煩。
  • Setup - 伺服器程式被開起來(Start as application)時會做的事情。
  • TearDown - 伺服器程式被關掉的時候要做的事情。

創建 Peer 類別

再加入一個類別,作為處理 Client 通訊的Peer,如下圖。
  11.png
  • 建構子
  • OnDisconnection - 即當 Client 斷線的時候要做什麼事。
  • OnOperationRequest - 當 Client 送來 Operation Request 的時候要做的事,也就是伺服器邏輯,例如日後 Client 發送一個代號 5 為登入的請求,Server 在接收到這個請求的後續處理。

實作類別

只作接通連線功能範例,首先是 Application
  • Setup - 完成 Log 的設定,之後就可以直接使用,這可以幫助你紀錄一些訊息或是 debug用。
  • 增加一個靜態屬性 Server - 以方便的存取 Server 物件。
  • 給 Peer 加上了一個 Guid 的屬性 - Guid 很難出現相同的值,不過為了避免這個狀況,給 Peer加上刷新 Guid 的方法,當出現相同的時候可以重刷。
  • 用 Dictionary 把 Peer 都裝起來 - 以免之後要用的時候找不到。
  • TearDown -  這裡不需要做事。
12 13

接下來是 Peer 類別

14

基本的 Photon Server 類別庫就完成了,接著
  1. 在方案總管對方案按右鍵建置,建置專案。
  2. 打開建置的檔案位置,預設是方案右鍵 > 在檔案總管中開啟資料夾 > bin\Debug。
  3. 打開 Photon 的資料夾,在 deploy 中建立新資料夾,我取名叫做 XXXServerDepolyment。
  4. 在裡面建立2個資料夾,bin 和 log。
  5. 把建置出來的類別庫資料複製一份( Debug 裡面的東西全部都複製過去)到 bin 中。
  6. 打開 deploy\CounterPublisher\bin 把 log4net.config 複製一份到 XXXServerDepolyment\bin中,打開你複製過去的 log4net.config。
在紅框的地方修改成你自己的名字,並加上編碼格式,完成後會像下面第二張圖。 15.png
完成如下
  16.png接著打開 deploy\bin_Win64 中的 PhotonServer.config。
  1. 把LoadBalancing的部分都刪掉,然後拿 MMO 的起來改。( 原因是每個 port 只能被用一次,只剩下 MMO  的部分的話就沒有重複 port 的問題。)
  2. 標籤 Configuration 之後的第一個標籤(我用 XXXXServer )這個可以依照你的意思取,這是你伺服器應用實體的名稱。
  3. DisplayName 是在 PhotonControl 中顯示的名字 (像 LoadBalancing (MyCloud) 這樣的名字)。
  4. 看到 OverrideApplication 就把內容換成你伺服器程式的真名(可以隨意取,和標籤的實體名稱可以不同,我取 XXXXServerProgram )。
  5. Default 的值要給伺服器程式的真名
  6. Appplication 中一些屬性的設定:
17.png
  • Name - 伺服器程式的真名。
  • BaseDirectory (起始資料夾) - 在Photon資料夾下deploy資料夾中,你創立的那個。
  • Assembly (組件) -  其實就是 Server dll 檔的 namespace。
  • Type (類型) - namespace + server類別名 。
基本上這樣就完成基本設置了,接下來之前已開啟 Server 請先關閉,再重新開啟一次,就會看見剛剛完成的設置,和前面一樣 Start as application 就可以執行了。
 在 deploy\PhotonServerDepolyment\log 中,可以看到 --------- Server Setup Successiful --------- 的Log。 然後可以執行 PhotonControl 的 Run TestClient 會出現下圖,代表已成功了。
  18.png



這篇記錄距離現在已有些時日,相信 Photon Server 可能已有所不同,但還是供有興趣的人參考,謝謝觀賞。


  • Share:

You Might Also Like

0 意見