先在phontoserver文件夹里的deploy创建一个文件夹MyGameServer,在它里面创建一个bin文件夹,把生成目录改一下

在创建一个类库,名字为MyGameServer

导入三个引用:ExitGamesLibs.dll    Phonto.SocketServer.dll    PhontoHostRuntimeInterfaces.dll

创建一个MyGameServer的类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon.SocketServer;
using ExitGames.Logging;
using System.IO;
using ExitGames.Logging.Log4Net;
using log4net.Config;namespace MyGameServer
{//所有的server端 主类都要继承自applicationbaseclass MyGameServer : ApplicationBase{private static readonly ILogger log = LogManager.GetCurrentClassLogger();    //log文件,用于日志输出//当一个客户端请求链接的时候//我们使用peerbase,表示和一个客户端的连接protected override PeerBase CreatePeer(InitRequest initRequest){log.Info("一个客户端链接过来了...");return new ClientPeer(initRequest);}//初始化protected override void Setup(){//日志的初始化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!");}//server端关闭的时候protected override void TearDown(){log.Info("服务器端关闭");}}
}



创建一个ClientPeer类


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon.SocketServer;
using PhotonHostRuntimeInterfaces;namespace MyGameServer
{public class ClientPeer : Photon.SocketServer.ClientPeer{public ClientPeer(InitRequest initRequest):base(initRequest){}//处理客户端断开连接的后续工作protected override void OnDisconnect(DisconnectReason reasonCode, string reasonDetail){}//处理客户端的请求protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters){}}
}

在PhotonServer.config里创建下面代码

<MyGameInstanceMaxMessageSize="512000"MaxQueuedDataPerPeer="512000"PerPeerMaxReliableDataInTransit="51200"PerPeerTransmitRateLimitKBSec="256"PerPeerTransmitRatePeriodMilliseconds="200"MinimumTimeout="5000"MaximumTimeout="30000"DisplayName="My Game"><!-- 0.0.0.0 opens listeners on all available IPs. Machines with multiple IPs should define the correct one here. --><!-- Port 5055 is Photon's default for UDP connections. --><UDPListeners><UDPListenerIPAddress="0.0.0.0"Port="5055"OverrideApplication="MyGame1"></UDPListener></UDPListeners><!-- 0.0.0.0 opens listeners on all available IPs. Machines with multiple IPs should define the correct one here. --><!-- Port 4530 is Photon's default for TCP connecttions. --><!-- A Policy application is defined in case that policy requests are sent to this listener (known bug of some some flash clients) --><TCPListeners><TCPListenerIPAddress="0.0.0.0"Port="4530"PolicyFile="Policy\assets\socket-policy.xml"InactivityTimeout="10000"OverrideApplication="MyGame1"></TCPListener></TCPListeners><!-- Defines the Photon Runtime Assembly to use. --><RuntimeAssembly="PhotonHostRuntime, Culture=neutral"Type="PhotonHostRuntime.PhotonDomainManager"UnhandledExceptionPolicy="Ignore"></Runtime><!-- Defines which applications are loaded on start and which of them is used by default. Make sure the default application is defined. --><!-- Application-folders must be located in the same folder as the bin_win32 folders. The BaseDirectory must include a "bin" folder. --><Applications Default="MyGame1"><!-- MMO Demo Application --><ApplicationName="MyGame1"BaseDirectory="MyGameServer"Assembly="MyGameServer"Type="MyGameServer.MyGameServer"ForceAutoRestart="true"WatchFiles="dll;config"ExcludeFiles="log4net.config"></Application></Applications></MyGameInstance>
</Configuration>

添加log4net插件,添加log4net.dll   ExitGames.Logging.Log4Net.dll引用
复制粘贴log4net.config文件(在src-server,Mmo,Photon.MmoDemo.Server文件下) 始终复制
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="false" update="Overwrite"><appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"><file type="log4net.Util.PatternString" value="%property{Photon:ApplicationLogPath}\\MyGame.Server.log" /><appendToFile value="true" /><maximumFileSize value="5000KB" /><maxSizeRollBackups value="2" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%d [%t] %-5p %c - %m%n" /></layout></appender><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /></layout><filter type="log4net.Filter.LevelRangeFilter"><levelMin value="DEBUG" /><levelMax value="FATAL" /></filter></appender><!-- logger --><root><level value="INFO" /><!--<appender-ref ref="ConsoleAppender" />--><appender-ref ref="RollingFileAppender" /></root><logger name="OperationData"><level value="INFO" /></logger></log4net>
												

PhotonServer-MyGameServer服务器端相关推荐

  1. PhotonServer游戏服务器端(四)

    游戏场景的同步 1,先新建一个Game场景 放置一个Panel 放置一个胶囊体 调整摄像机,调整到能看到胶囊体在Panel上面 2,给胶囊体添加一个脚本Player代码实现如下: using Syst ...

  2. photon 服务器操作系统,PhotonServer游戏服务器端教程

    老师我是看了泰斗破坏神的服务器,但是在利用Phtonserver从数据库中获取服务器的列表,它无法获取,哪个说ssl主机本地主机不支持 //实现父类的抽象方法 处理收到客户端的请求的方法 ... 追评 ...

  3. MMORPG类游戏制作思路分享(Unity3D+PhotonServer)

    核心问题 如何实现所有客户端玩家信息同步(如位置信息)? 同步模式一般分两种:状态同步和帧同步.而本文主要针对MMO类游戏,所以建议用状态同步. 状态发生后,客户端上传操作到服务器,服务器收到后处理行 ...

  4. PhotonServer介绍

    官网 On-Premises Cross Platform Multiplayer Game Backend | Photon Engine Photon为您完全封装了每个客户端平台的复杂网络层.Ph ...

  5. photon 服务器操作系统,PhotonServer游戏服务器部署及日志输出之美

    本系列教程介绍游戏服务器端框架----PhotonServer 开发工具:Unity3d2017.VS2017.PhotonServer SDK 首先到官网下载其SDK,下载地址 服务器部署 将下载下 ...

  6. PhotonServer

    启动PhotonServer 1.下载PhotonServer: 下载地址:PhotonServer下载 2.双击解压到D盘: 3.在官网注册帐号下载免费license文件,将最大连接数由20扩展为1 ...

  7. PhotonServer的使用

    1. 服务器端初期配置与测试 1. 1 配置环境 在photonserver官网(https://doc.photonengine.com)下载SDK,解压后放于一个英文目录,会得到 如下文件,并注册 ...

  8. PhotonServer中PhotonServer.config文件的配置

    1.打开config文件,先复制里面的一个MMoDemo. 2.先改掉大的名字(注意成对改) 3.改掉DisplayName,这个就是你下面图标里面可以直接看到的那个名字 4.将其中的PolicyFi ...

  9. PhotonServer中日志的配置

    1.添加引用log4net.dll和ExitGames.Logging.Log4Net.dll 2.在项目中添加一个log4net的config文件,并且在PhotonServer的src下面的MMo ...

最新文章

  1. UGUI的优点新UI系统二 直观、易于使用
  2. What is 软件工程
  3. bzoj 5369: [Pkusc2018]最大前缀和
  4. 数据预处理-数据变换-连续属性离散化实现:pandas(0.23)+sklearn(0.19.1)+matplotlib(2.2.2)
  5. MySQL怎么导出用户权限表_导出MySQL用户权限_MySQL
  6. mysql 海量数据库的查询优化及分页算法方案_mysql 海量数据库的查询优化及分页算法方案...
  7. Android中的观察者DataSetObservable和DataSetObserver
  8. C#利用CDOSYS组件发邮件的一些小结
  9. bzoj 1503: [NOI2004]郁闷的出纳员 (splay)
  10. 软件项目管理实用教程(人民邮电出版)第二章课后习题
  11. vs2012 链接内置数据库 sql express 出现error 26 解决方法
  12. word 插入单页页脚
  13. DocumentBuilderFactory.newInstance() 异常解决
  14. oracle11g批量insert多条,Oracle高效批量插入数据
  15. 如何安装TFP(tensorflow概率编程)
  16. u3d学习-第一个小游戏
  17. 【Windows】Win 10 无法访问同一网络中Mac 电脑
  18. 传感器之热释电红外传感器
  19. ZOOM——C++软件开发岗(实习)——视频面试一面
  20. 运用特征脸方法的基于Opencv的猫脸检测实现

热门文章

  1. 推荐一个截图工具fscapture
  2. 超级全的PS快捷键总结,建议收藏
  3. SysTick-系统定时器
  4. Python虚拟机的函数机制
  5. 阿里云DNS动态解析:解决内网服务外网访问
  6. 交叉编译Qt应用和发布
  7. 公司想申请软著投标加分,没有源代码也可以申请
  8. 常见的服务器集群负载均衡技术:二三四七层负载均衡,DNS、LVS、F5、nginx负载均衡
  9. C# 虚方法、重写方法和抽象方法
  10. unshare命令详解及案例