个人学习笔记
PhotonServer官网(下载目录要放在英文目录下):https://www.photonengine.com/en/server
前期配置
-
服务器的部署,在“/Photon-OnPremise-Server-SDK_v4-0-29-11263\deploy\bin_Win64”的目录下找到下面文件,按照里面的自己部署一个服务器。
-
配置文件(在实例中找一个就行,就是下面这个文件)
其中只需要改文件日志的名字就行,用VS来做要把其设置为始终复制。 -
在编译中所用到的引用。
服务端和客户端交互视图
- 这个是连接之后,客户端发起请求后,和服务端交互的视图
服务器
- 服务器的初始化(MyGameServer.cs,继承抽象类Photon.SocketServer.ApplicationBase)
public class MyGameServer : ApplicationBase
{
//日志初始化一次就不会再初始化了
public static readonly ILogger log = LogManager.GetCurrentClassLogger();
//客服端请求连接的时候
protected override PeerBase CreatePeer(InitRequest initRequest)
{
log.Info("A client link!");
return new ClientPeer(initRequest);
}
//初始化
protected override void Setup()
{
//日志的初始化
//路径输出的配置,获取配置文件的Photon:ApplicationLogPath属性
log4net.GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(
Path.Combine(this.ApplicationRootPath, "bin_Win64"), "log");
//读取配置文件
FileInfo configFileInfo = new FileInfo(Path.Combine(this.BinaryPath, "log4net.config"));
if(configFileInfo.Exists)
{
LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);//让photon知道我们使用哪个插件
XmlConfigurator.ConfigureAndWatch(configFileInfo);//让log4net这个插件读取配置文件
}
log.Info("Setup Completed!");
}
//关闭的时候
protected override void TearDown()
{
log.Info("Server is closed!"