PhotonServer游戏服务器部署及日志输出

本系列教程介绍游戏服务器端框架----PhotonServer

原文地址:blog.liujunliang.com.cn

开发工具:Unity3d2017、VS2017、PhotonServer SDK

首先到官网下载其SDK,下载地址

服务器部署

将下载下来的SDK解压

目录结构如下

PhotonServer游戏服务器部署及日志输出_第1张图片

deploy:部署程序

doc:文档

lib:存放类库,在接下来的客户端(Unity3d)和服务器端开发需要引用到

src-server:Demo源码


接下来开始部署自己的游戏服务器

打开VS,新建类库

PhotonServer游戏服务器部署及日志输出_第2张图片

在项目中引用lib目录下的如下图五个类库

PhotonServer游戏服务器部署及日志输出_第3张图片


 在项目中新建入口类,这里命名为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目录下

PhotonServer游戏服务器部署及日志输出_第4张图片



 右键项目->点击生成

PhotonServer游戏服务器部署及日志输出_第5张图片


在MyGame->bin目录下生成执行程序

PhotonServer游戏服务器部署及日志输出_第6张图片

配置文件:在bin_Win64打开PhontonServer.config文本文件(XML)

PhotonServer游戏服务器部署及日志输出_第7张图片


打开配置文件,发现里面有两个示列程序,复制粘贴一个做为自己的

PhotonServer游戏服务器部署及日志输出_第8张图片





	
    
	

		
		
		
			
			
			
			
			
		
		
				
		
			
			
			
			
			
			
			
			
			
			
		
		
		
		
		  
		  
		  
		  
		  
		

		
		
		
			
			
			
			
			
			
		

		
		
		

		
		
				
			
			
			
			
			
			
			
				
		
		
	
	
	
	
	
		
		
		
		
			
			
		
    
		
		
		 
		
			
			
		

		
		
		  
		  
		  
		  
		  
		

		
		
			
			
		

		
		
		
				

		
		
		
		
			
			
			

			
			
				

		
	
	

	
		
		
			
									
		
		
				
		
			
			
			
			
			
			
			
		
		
		
		
		  
		  
		  
		  
		  
		

		
		
		
			
			
			
		

		
		
		

		
		
				
			
				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

PhotonServer游戏服务器部署及日志输出_第9张图片

发现在bin_Win64->log文件夹下成功生成了MyGameServer.log文件

PhotonServer游戏服务器部署及日志输出_第10张图片

打开日志文件,有打印,表明配置成功



关注blog.liujunliang.com.cn

下一篇--------Unity3d游戏客户端与Photon服务器数据连接

更多内容持续更新!!!!!


你可能感兴趣的:(游戏服务器,Unity游戏开发)