PhotonServer-MyGameServer服务器端
来源:互联网 发布:淘宝卖蜂蜜要什么手续 编辑:程序博客网 时间:2024/06/05 18:52
先在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端 主类都要继承自applicationbase class 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>
阅读全文
1 0
- PhotonServer-MyGameServer服务器端
- PhotonServer游戏服务器端(一)
- PhotonServer游戏服务器端(二)
- PhotonServer游戏服务器端(三)
- PhotonServer游戏服务器端(四)
- PhotonServer概念
- Photonserver 官方论坛
- PhotonServer初探
- PhotonServer介绍
- PhotonServer学习
- PhotonServer配置
- PhotonServer服务器
- PhotonServer 下载地址记录
- PhotonServer MMO游戏开发
- PhotonServer小案例Demo
- PhotonServer游戏服务器
- PhotonServer游戏服务器【完整版】
- PhotonServer学习笔记(一)
- JS操作DOM元素
- Asp.net六大内置对象
- maven在MAC和windows系统的安装
- JVM学习笔记-对象的内存分配
- Invalid byte tag in constant pool 15
- PhotonServer-MyGameServer服务器端
- java中枚举类型
- NAT实现
- 18.1 主机托管服务
- 基于Cortex-A9 4412的硬件FIMC视频转码
- .NET网站爬虫初体验
- 课余随笔——图解数据结构——链表
- AdvancedInstaller设置IP地址和端口号
- 简述什么是Shadows Everywhere漏洞