本系列教程介绍游戏服务器端框架----PhotonServer
原文地址:blog.liujunliang.com.cn
开发工具:Unity3d2017、VS2017、PhotonServer SDK
首先到官网下载其SDK,下载地址
将下载下来的SDK解压
目录结构如下
deploy:部署程序
doc:文档
lib:存放类库,在接下来的客户端(Unity3d)和服务器端开发需要引用到
src-server:Demo源码
接下来开始部署自己的游戏服务器
打开VS,新建类库
在项目中引用lib目录下的如下图五个类库
在项目中新建入口类,这里命名为MyGameServer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon.SocketServer;
using System.IO;
using ExitGames.Logging;
using ExitGames.Logging.Log4Net;
using log4net.Config;
namespace MyGameServer
{
//服务器框架主类 框架入口
class MyGameServer : Photon.SocketServer.ApplicationBase
{
//单例模式
public static ILogger LOG = LogManager.GetCurrentClassLogger();
//当有客户端接入时候调用
protected override PeerBase CreatePeer(InitRequest initRequest)
{
return new ClientPeer(initRequest);
}
//当框架启动时候调用
protected override void Setup()
{
}
//当框架停止时候调用
protected override void TearDown()
{
}
新建客户端类,这里命名为ClientPeer
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon.SocketServer;
using PhotonHostRuntimeInterfaces;
namespace MyGameServer
{
class ClientPeer : Photon.SocketServer.ClientPeer
{
public ClientPeer(InitRequest ir) : base(ir) { }
//该客户端断开连接
protected override void OnDisconnect(DisconnectReason reasonCode, string reasonDetail)
{
}
//该客户端出操作请求
protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
{
}
}
}
这里一个简单的服务端程序写好了,在PhotonServer的depoly目录下新建一个文件夹,这里命名为MyGame,再创建一个子目录,命名为bin
在右键项目->属性,将项目生成路径配置到刚刚创建的bin目录下
右键项目->点击生成
在MyGame->bin目录下生成执行程序
配置文件:在bin_Win64打开PhontonServer.config文本文件(XML)
打开配置文件,发现里面有两个示列程序,复制粘贴一个做为自己的
Assembly="MyGameServer"
在MyGameServer的Setup函数里添如下代码
//当框架启动时候调用
protected override void Setup()
{
//设置配置文件属性
log4net.GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(Path.Combine(this.ApplicationRootPath, "bin_Win64"), "log");//设置日志文件存储目录
//日志配置文件
FileInfo logConfigFileInfo = new FileInfo(Path.Combine(this.BinaryPath, "log4net.config"));
if (logConfigFileInfo.Exists)//配置文件存在
{
//设置Photon日志插件为Log4Next
LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
//Log4Next这个插件读取配置文件
XmlConfigurator.ConfigureAndWatch(logConfigFileInfo);
}
LOG.Info("服务器初始化完成");
}
运行PhotonServer,运行MyGameServer
发现在bin_Win64->log文件夹下成功生成了MyGameServer.log文件
打开日志文件,有打印,表明配置成功
更多内容持续更新!!!!!