Photon_部署PhotonServer 服务端项目_011


第一步创建项目

首先创建一个VS项目,不同的是这次创建的项目是类库
Photon_部署PhotonServer 服务端项目_011_第1张图片


第二步创建部署的目录

在deploy目录下面创建MyGameServer目录,并在MyGameServer下创建bin目录
Photon_部署PhotonServer 服务端项目_011_第2张图片


第三步修改项目的生成目录

因为此项目是一个类库项目,所以会生成一些文件
我们将这些文件直接放入第二步创建的目录中
Photon_部署PhotonServer 服务端项目_011_第3张图片
Photon_部署PhotonServer 服务端项目_011_第4张图片
Photon_部署PhotonServer 服务端项目_011_第5张图片
这样在我们完成项目的时候选择项目,右键,点击生成就可以在此目录下面看到生成的文件了


第四步 添加必要的引用

Photon_部署PhotonServer 服务端项目_011_第6张图片
Photon_部署PhotonServer 服务端项目_011_第7张图片
Photon_部署PhotonServer 服务端项目_011_第8张图片
Photon_部署PhotonServer 服务端项目_011_第9张图片


第五步创建主类

创建MyGameServer类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon.SocketServer;
using ExitGames.Logging;
using ExitGames.Logging.Log4Net;
using System.IO;
using log4net.Config;

namespace MyGameServer
{
    //所有的server端 主类都要继承自ApplicationBase类
    //ApplicationBase 是一个抽象类 我们需要实现他的所有的抽象方法
    public class MyGameServer : ApplicationBase
    {
        //当一个客户端请求连接的时候
        //我们使用peerbase 表示和一个客户端的连接
        protected override PeerBase CreatePeer(InitRequest initRequest)
        {
            return new ClientPeer(initRequest);
        }
        //初始化
        protected override void Setup()
        {
        }
        //Server端关闭的时候
        protected override void TearDown()
        {

        }
    }
}

第六步 创建一个用户连接类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon;
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)
        {
            throw new NotImplementedException();
        }
        //发送请求
        protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
        {
            throw new NotImplementedException();
        }
    }
}

第七步配置文件

该配置文件位于\deploy\bin_Win64文件夹下
Photon_部署PhotonServer 服务端项目_011_第10张图片
此文件是一个文本文件,为了便于我们编辑我们可以使用VS打开
在此文件中Configurtion标签中包含两个系统自带的项目
LoadBalancing和MMoDemo
类似下面的图
Photon_部署PhotonServer 服务端项目_011_第11张图片

我们可以复制其中一个开始更改我们现在要部署的项目

    
  
    <MyGameInstance
        MaxMessageSize="512000"
        MaxQueuedDataPerPeer="512000"
        PerPeerMaxReliableDataInTransit="51200"
        PerPeerTransmitRateLimitKBSec="256"
        PerPeerTransmitRatePeriodMilliseconds="200"
        MinimumTimeout="5000"
        MaximumTimeout="30000"
        DisplayName="My Game"
        >

        
        

        <UDPListeners>
            <UDPListener
                IPAddress="0.0.0.0"
                Port="5055"
                OverrideApplication="MyGame1">
            UDPListener>
        UDPListeners>

        
        
         
        <TCPListeners>
            <TCPListener
                IPAddress="0.0.0.0"
                Port="4530"
                PolicyFile="Policy\assets\socket-policy.xml"
                InactivityTimeout="10000"
                OverrideApplication="MyGame1"               
                >
            TCPListener>
        TCPListeners>
        
        <Runtime
            Assembly="PhotonHostRuntime, Culture=neutral"
            Type="PhotonHostRuntime.PhotonDomainManager"
            UnhandledExceptionPolicy="Ignore">
        Runtime>


        
        
        <Applications Default="MyGame1">

            
      
      
      
            <Application
                Name="MyGame1"
                BaseDirectory="MyGameServer"
                Assembly="MyGameServer"
                Type="MyGameServer.MyGameServer"
                ForceAutoRestart="true"
                WatchFiles="dll;config"
                ExcludeFiles="log4net.config">
            Application>
        Applications>
    MyGameInstance>

这样我们就可以启动自己的项目了

你可能感兴趣的:(服务器,PhotonServer)