首先从photon官网下载sdk,下载后直接解压有四个文件: deploy:存放photon的服务器控制程序和服务端Demo,也是我们使用次数最多的文件夹 doc:官方文档 lib:Photon类库,服务端需要引用 src-server:服务端Demo源代码 创建一个简单的服务端: 1.从vs新建一个类库,命名为ChatRoom,进去后把类名修改为MyServer,然后新建一个名叫MyClient的类。 2.点击项目名称下的引用,然后点击浏览,选择你photon解压的文件夹下的lib文件夹里面的一下dll: 3.给MyServer实现ApplicationBase接口,点击显示可能的修补程序 选择第一项: 实现抽象类: 4.接下来回到MyClient中,添加接口ClientPee 生成构造函数并实现抽象类: MyServer和MyClient两个类连接:
protected override PeerBase CreatePeer(InitRequest initRequest)
{
return new MyClient(initRequest);
}
5.复制以下代码到MyServer中,并在Setup()中调用
///
/// 产生一个log文件,存放我们的log
///
protected virtual void InitLogging()
{
ExitGames.Logging.LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance);
GlobalContext.Properties[“Photon:ApplicationLogPath”] = Path.Combine(this.ApplicationRootPath, “log”);
GlobalContext.Properties[“LogFileName”] = “wjg” + this.ApplicationName;
XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.Combine(this.BinaryPath, “log4net.config”)));
}
6.日志配置文件: 打开src-server\\Loadbalancing\\LoadBalancing文件夹,把log4net.config文件拖到我们的ChatRoom项目中,文件属性设置为始终复制[{% image http://www.wjgbaby.com/wp-content/uploads/2017/08/17080433.png '](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080428-300x235.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080428.png) 7.打开log4net,以下节点暂时用不到,可以删除[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080429-300x153.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080429.png) 8.在deploy新建文件夹ChatRoom,在ChatRoom新建文件夹bin,回到项目中,点击属性-->生成-->输出路径,将输出路径设置为我们新建的bin文件夹,然后生成解决方案。 9.打开deploy\\bin\_Win64下的PhotonServer.config。 复制所有的东西粘贴到倒数第二行,也就是上面一行 修改LoadBalancing为ChatServer,除了首尾修改,还需修改DisplayName[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080430-300x114.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080430.png) 其他的Application可以删掉,我们用不到,复制一下作如下修改:[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080431-300x152.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080431.png) Name:服务器名称 BaseDirectory:设置的是deploy目录为基础设置,这里服务端程序文件夹在deploy里的TestPhotonServer Assembly:Application入口程序所在的namespace Type:入口类的完整限定性名称 ForceAutoRestart:强制重启 WatchFiles:调用的文件后缀,dll和config ExcludeFiles:一般是日志配置文件 给OverrideApplication改名字:[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080432-300x227.png)](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080432.png) 10.现在启动win64下的PhotonControl程序,点击可以看到ChatServer,选择start as application,服务器启动,打开日志,出现Service is running就表示我们的服务器已经正常启动了。[![](http://www.wjgbaby.com/wp-content/uploads/2017/08/17080433-300x99.png)' '' %}