新手学习Photon之创建Photon服务器
来源:互联网 发布:搜款网服饰网络批发 编辑:程序博客网 时间:2024/05/30 04:12
新手学习Photon之创建Photon服务器
这是我第一次写博客,纯属为了总结一下自己的所学所感。如有什么不好之处,请各位大神高抬贵手。作为一个unity爱好者,一直在玩单机比较枯燥,所以尝试写一个联网的东西。Photon服务器非常适合我们这些萌新爱好者,它为什么创建好了服务框架,我们只需要编写一些库文件就能创造属于自己的服务器。
言归正传,Photon服务器怎么安装我就不多说。我们来讲讲怎么创建服务器吧。
首先我们需要创建一个项目,选择Visual C#——类库。
创建完成后,我们导入Photon库文件。找到Photon安装目录,进入库目录(…/Photon/lib),导入库文件:
-ExitGames.Logging.Log4Net.dll
-ExitGamesLibs.dll
-log4net.dll
-Photon.SocketServer.dll
-PhotonHostRuntimeInterfaces.dll
完成后,创建两个类MyServer(服务端),MyClient(客户端)。
MyServer继承ApplicationBase,MyClient继承ClientPeer。
using Photon.SocketServer;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using PhotonHostRuntimeInterfaces;namespace PhotonServer{ public class MyServer : ApplicationBase { /// <summary> ///客户端创建连接 /// </summary> /// <param name="initRequest"></param> /// <returns></returns> protected override PeerBase CreatePeer(InitRequest initRequest) { return new MyClient(initRequest); } /// <summary> /// 服务器开启 /// </summary> protected override void Setup() { } /// <summary> /// 服务器关闭 /// </summary> protected override void TearDown() { } }}
using Photon.SocketServer;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using PhotonHostRuntimeInterfaces;namespace PhotonServer{ public class MyClient : ClientPeer { /// <summary> /// 初始化 /// </summary> /// <param name="initRequest"></param> public MyClient(InitRequest initRequest) : base(initRequest) { } /// <summary> /// 客户端断开 /// </summary> /// <param name="reasonCode"></param> /// <param name="reasonDetail"></param> protected override void OnDisconnect(DisconnectReason reasonCode, string reasonDetail) { } /// <summary> /// 客户端请求 /// </summary> /// <param name="operationRequest"></param> /// <param name="sendParameters"></param> protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters) { } }}
为了以后编程调试方便,我们可以在MyServer.cs中加入Log模块,并且导入log4net.config文件。改文件可以在Photon的其他案例中找到。
※※※导入log4net.config后,必须把该文件属性中改为始终复制。(非常关键,否则日志不输出)
private static ILogger log = ExitGames.Logging.LogManager.GetCurrentClassLogger(); //创建一个静态方法来输出日志 public static void Log(string str){log.Info(str.ToString());} //初始化日志 protected virtual void InitLogging() { ExitGames.Logging.LogManager.SetLoggerFactory(Log4NetLoggerFactory.Instance); GlobalContext.Properties["Photon:ApplicationLogPath"] = Path.Combine(this.ApplicationRootPath, "log"); GlobalContext.Properties["LogFileName"] = this.ApplicationName; XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.Combine(this.BinaryPath, "log4net.config"))); }
这样一个简单的服务端完成了,后面可以根据需要添加方法。
接下里我们需要在Photon安装目录下,deploy文件夹下创建文件夹PhotonServer/bin父子文件夹。
然后将项目PhotonServer的生成目录改成bin文件夹所在的目录,并生成。
完成后找到deploy/bin_Win64文件夹下PhotonServer.config文件。添加如下代码
<PhotonServer MaxMessageSize="512000" MaxQueuedDataPerPeer="512000" PerPeerMaxReliableDataInTransit="51200" PerPeerTransmitRateLimitKBSec="256" PerPeerTransmitRatePeriodMilliseconds="200" MinimumTimeout="5000" MaximumTimeout="30000" DisplayName="PhotonServer" > <!-- 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> <UDPListener IPAddress="0.0.0.0" Port="5255" OverrideApplication="PhotonServer"> </UDPListener> </UDPListeners> <!-- Defines the Photon Runtime Assembly to use. --> <Runtime Assembly="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="PhotonServer"> <!-- MMO Demo Application --> <Application Name="PhotonServer" BaseDirectory="PhotonServer" Assembly="PhotonServer" Type="PhotonServer.MyServer" ForceAutoRestart="true" WatchFiles="dll;config" ExcludeFiles="log4net.config"> </Application> </Applications> </PhotonServer>
这样运行该文件夹下PhotonControl.exe,选择PhotonServer/Start as application就可以开启服务器了。
- 新手学习Photon之创建Photon服务器
- unity服务器Photon Server学习笔记
- Photon服务器引擎(一)Photon简介
- Photon服务器引擎(一)Photon简介
- Photon服务器引擎入门
- Photon服务器入门二
- Unity链接Photon服务器
- Photon服务器入门教程二
- Photon服务器引擎 入门教程
- photon服务器具体实例
- Unity Photon服务器
- Unity Photon服务器(二)
- Photon分布式服务器架设-创建主服务器(一)
- Photon 分布式服务器架设-创建数据传入子服务器(二)
- Photon学习笔记
- photon mapping学习笔记
- Photon学习笔记(三)
- photon mapping学习笔记
- 使用npm和webpack构建工作环境
- Linux中ELF格式文件介绍
- s5pv210——时钟系统
- css 使用content:attr()实现悬浮提示
- ajaxfileupload+struts2文件上传、下载
- 新手学习Photon之创建Photon服务器
- C++ explicit构造函数
- 计算机语言中是如何处理sin函数的?
- 今日进度--论文5.10
- 06 布局管理器
- jsp application对象使用 统计访问人数
- java中设置日期格式的方式一般用SimpleDateFormat("YY-MM-dd")就可以了,但为什么有的 SimpleDateFormat("YY-MM-dd",locale.getDefau
- json字符串与java对象互转
- Java内部类原理分析(静态内部类和成员内部类)