這裡是Photon營運事務局。有關伺服器端的續集,這次想跟大家談談關於在NAPT環境中的設定內容。
依據使用環境不同,所有的伺服器都會裝設防火牆或負載均衡器,且僅擁有私有IP位址。而若要從外部進行連接,多數時候都必須設定連接埠轉發。 在這種情況下,如果妥善設定的話,即可良好地使用Photon Server。這次我將針對這部分進行說明。
請注意,前提是如前次所提,已經完成了由複數機台組成的Photon Server之安裝設定。煩請參考此處。
另外,關於埠號列表,請參考文件中的TCP and UDP Port Numbers。
https://doc.photonengine.com/ja/onpremise/current/operations/tcp-and-udp-port-numbers
連結埠轉接的設置方式
這會依據全域IP位址分配成多個或單一的情況有別。此處將以較嚴格的情況,也就是全域IP位址視為單一位址的情況進行考量。
在Master Server、Game Server中,必須對外公開的連接埠分別如下所示。
Master/Game | TCP/UDP |
埠號 |
用途 |
---|---|---|---|
Master | TCP | 843 | Flash / Unity Policy |
TCP | 943 | Silverlight Policy | |
TCP | 4530 | Client-Master間通信 (TCP) | |
UDP | 5055 | Client-Master間通信 間通訊 (UDP) | |
TCP | 9090 | Client-Master間通信(WebSocket) | |
Game | TCP | 4531 | Client-Game間通信(TCP) |
UDP | 5056 | Client-Game間通信(UDP) | |
TCP | 9091 | Client-Game間通信(WebSocket) |
在僅為單一位址的情況下,所有伺服器的連接埠都必須分配給這一個全域IP位址,因此必須思考埠號的分配。首先關於Master Server,由於僅有1台,直接進行分配將最容易理解。而關於Game Server,此處隨著規模擴大,台數也可能跟著增加,因此必須設計為可依據台數增加予以對應。
關於Game Server的連接埠、
TCP | 4530 + n |
---|---|
UDP | 5055 + n |
WebSocket | 9090 + n |
(n是伺服器的數量) |
如此設定較易理解。
基礎的埠號設定為接續預設Master Server而來,如果未與其他埠號重疊,就可以不必進行變更。若是要變更, 可以像是如下的設定:
TCP | 10100 + n |
---|---|
UDP | 10200 + n |
WebSocket | 10300 + n |
(n是伺服器的數量) |
綜前述,連接埠轉接的設置如下所示:
TCP/UDP | 全域端埠號 | Server | 私有端埠號 | 用途 |
---|---|---|---|---|
TCP | 843 | Master | 843 | Flash / Unity Policy |
TCP | 943 | 943 | Silverlight Policy | |
TCP | 4530 | 4530 | Client-Master間通信 (TCP) | |
UDP | 5055 | 5055 | Client-Master間通信 (UDP) | |
TCP | 9090 | 9090 | Client-Master間通信 (WebSocket) | |
TCP | 4531 | Game 1 | 4531 | Client-Game間通信 (TCP) |
UDP | 5056 | 5056 | Client-Game間通信 (UDP) | |
TCP | 9091 | 9091 | Client-Game間通信 (WebSocket) | |
TCP | 4532 | Game 2 | 4531 | Client-Game間通信(TCP) |
UDP | 5057 | 5056 | Client-Game間通信(UDP) | |
TCP | 9092 | 9091 | Client-Game間通信 (WebSocket) | |
TCP | 4530 + n | Game n | 4531 | Client-Game間通信 (TCP) |
UDP | 5055 + n | 5056 | Client-Game間通信 (UDP) | |
TCP | 9090 + n | 9091 | Client-Game間通信(WebSocket) |
如果全域IP位址為多個的配置下,只要在上述表中新增全域IP位址即可。只要擁有與Game Server相同數量的全域IP位址可以使用,即可調整全域端與私有端 (伺服器端)的埠號,比較容易理解。請根據各別的環境,製作如上的表格並予以理解。
Master Server的設定
基本上不須對Master Server本身的設定進行更動。不過,必須將Game Server的埠號寫入如下Policy的檔案之中:
(server-sdk)¥deploy¥Policy¥assets¥socket-policy.xml
請直接使用預設的埠號,Game Server若為2台以下,則可直接延用;只有在埠號已經變更,或伺服器數量在3台以上時,才需要進行更動。
例如, Game Server為3台,使用預設埠號時,必須進行變更如下:
<cross-domain-policy> <allow-access-from domain="*" to-ports="5055,5056,5057,5058,4530,4531,4532,4533,9090,9091,9092,9093" /> </cross-domain-policy>
若是使用Silverlight,請將同一資料夾中的socket-policy-silverlight.xml變更為相同的內容。Master Server的設定如上述所示。
Game Serverの設定 Game Server的設定
Game Server的設定非常重要。我們將更改應用程式特定檔案Photon.LoadBalancing.dll.config。 (server-sdk)¥deploy¥Loadbalancing¥GameServer1¥bin¥Photon.LoadBalancing.dll.config
此處第16-34行的部分是當Master Server對Client下達連接此一Game Server指令時,所通知的連線資訊。Client將依據所接收的連線資訊,嘗試連向Game Server。
首先針對通知的全域IP位址。在具備全域IP位址的環境中,可直接採用自動設定,但在NAPT環境中,自己進行設定比較安全。
<!-- Leave empty and the the IP address will be looked up dynamically at runtime. --> <setting name="PublicIPAddress" serializeAs="String"> <value>210.172.1.1</value> </setting>
接下來是Client-Game間TCP的通訊埠號。它將成為通知Client的埠號,因此必須寫入全域端的埠號。
例如:使用預設埠號的第3台Game Server就是4533,顯示如下。
<!-- Client-to-Gameserver TCP connections. Needs to match the TCPListener in PhotonServer.config --> <setting name="GamingTcpPort" serializeAs="String"> <value>4533</value> </setting>
下一步是UDP通訊埠號。與TCP相同,請寫入全域端的埠號。 如果與TCP一樣,是第3台的話,就是5058。
<!-- Client-to-Gameserver UDP connections. Needs to match the UDPListener in PhotonServer.config --> <setting name="GamingUdpPort" serializeAs="String"> <value>5058</value> </setting>
最後是WebSocket的通訊埠號,此處也一樣需要全域端的埠號。此處如果也一樣是第3台的話,就是9093。
<!-- Client-to-Gameserver WebSocket connections. Needs to match the WebSocketListener in PhotonServer.config --> <setting name="GamingWebSocketPort" serializeAs="String"> <value>9093</value> </setting>
以上即為更改的內容。如果要執行更改的內容,請重新啟動執行個體 (instance)。
小結
需要設定的地方並不多。重點在於,必須在各別的環境中妥善安排好以何種結構進行操作。相關內容製作成表格的話較易理解,而且一邊對照表格確認內容,一邊進行設定,比較不容易出錯。還有,請牢牢記住,Game Server的設定即是設定伺服器端的全域端埠號、IP位址,以便通報 Client 端可以如何與之連接.。
接下來,會繼續介紹關於Photon Server的內容。如有任何要求,歡迎指教!
評論
0 條評論
請登入寫評論。