Photon Server初识(四) --- 部署自己的服务Photon Server
准备工作:
1、一台 window 虚拟机(本机是window也行)
2、下载SDK : https://www.photonengine.com/zh-CN/sdks#server
一:SDK介绍
下载SDK后是一个.exe文件 photon-server-sdk_v4-0-29-11263.exe , 在 window上点击,会生成一个结构目录:
比较重要的就是 deploy 目录,我们的服务部署就是放到这个文件夹下。src-server目录放的是一些官方提供的服务源码。
进入deploy-> bin-Win64 -> 中双击 PhotonControl.exe 就算启动服务了。
开始我们自己的服务:
二:新建项目,在之前的解决方案下新建项目,注意新建的是类库(不是之前的控制台项目)
三、引入包。在项目的文件目录中新建 Lib文件夹,将之前下载的SDK中lib目录中的几个dll库复制过来。然后在项目中导入。
四、修改代码。
(1)、去解压的SDK目录 ser-server -> Loadbanlancing -> LoadBalancing 目录下,复制一个文件 log4net.config 到项目的根目录下(用于日志配置)。
(2)、修改Class1.cs 文件重命名为MyGameServer.cs
(3)、新建文件 ClientPeer.cs 文件
(4)、修改配置 log4net.config
<?xml version="1.0" encoding="utf-8" ?> <log4net debug="false"> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p %-30.30c{2} %m% [%t] [%x]%n" /> </layout> </appender> <!-- "normal" log file appender --> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="%property{Photon:ApplicationLogPath}\MyGameSer.log" /> <!--param name="File" value="logLite.log" /--> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="1" /> <param name="MaximumFileSize" value="250MB" /> <param name="RollingStyle" value="Size" /> <param name="LockingModel" type="log4net.Appender.FileAppender+MinimalLock" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" /> </layout> </appender> <!-- logger --> <root> <level value="INFO" /> <appender-ref ref="LogFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> <!-- operation data logger --> <!-- set level to DEBUG to enable operation data logging--> <logger name="OperationData"> <level value="INFO" /> </logger> <!-- override log level for certain classes / namespaces --> <logger name="ExitGames"> <level value="INFO" /> </logger> </log4net>
修改文件属性为一直拷贝:
(5)、 修改文件 ClientPeer.cs
using Photon.SocketServer; using PhotonHostRuntimeInterfaces; namespace MyGameServer { public class ClientPeer : Photon.SocketServer.ClientPeer { //创建客户端 public ClientPeer(InitRequest initRequest) : base(initRequest) { } protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters) { } //处理客户端断开连接 protected override void OnDisconnect(DisconnectReason reasonCode, string reasonDetail) { } } }