游戏服务器PhotonServer(一)———PhotonServer环境配置

目录

 

一、PhotonServer介绍

1、为什么选择 Photon Server?

2、Photon Server 有什么缺点?

二、PhotonServer下载与安装

1、下载PhotonServer SDK

2、安装PhotonServer SDK

三、PhotonServer运行

四、通过一个简单的案例来配置PhotonServer服务器

1、新建项目

2、引用类库

3、服务器代码主流程

4、服务器程序发布

5、配置PhotonServer.config文件

6、启动服务器

一、PhotonServer介绍

Photon Server是一款实时的Socket服务器和开发框架,快速、使用方便、容易扩展,服务端架构在Windows系统平台上,采用C#语言编写,Photon Server发布包括两个部分,Client SDK Release和Server SDK Update,Server SDK的版本是v2.4.5,而Client SDK的版本是v6.2.0。客户端SDK提供了多种平台的开发API,包括DotNet,Unity3D,C/C++等。SDK就是指可以为第三方开发者提供特定的软件包、软件框架、硬件平台、操作系统等创建应用软件开发工具的集合,并且SDK还能简单的为某个程序设计语言提供应用程序接口API的一些文件。

1、为什么选择 Photon Server?

Photon Server的核心是用C++开发,不同 於其他伺服器采用的java,因此在效能上凌驾於其他server不少,在 Server 端 Script 采用C#语言,算是一种很容易学习的语言,Photon的Client端支援C++、.net、java、html5 、flash、Unity、mamalade、iOS、android、winphone、cocos等,市面上常见的平台全部都有支援,使用容易、效能高、支援平台多,这些优点让photon成为一个优越的套装socket server。

2、Photon Server 有什么缺点?

若要说Photon最大的缺点大概就是文件实在不是很好,市面上教学非常少 ,到目前为止也没有专门的书籍,官方的手册语焉不详而且也很没有系统,更諻论中文相关的教学了,大多在评估套装伺服器的人都是在第一步打退堂豉而选择了其他的Server,但只要跨过门栏就能发现Photon开发起来是比其他Server容易的多,附加的Lobby Server和MMO Server功能都非常强大完善而且效能极高,官方及讨论区的服务快速而且热心,这点足以弥补资料及手册的不足了。 

以上内容摘抄自百度知道

二、PhotonServer下载与安装

1、下载PhotonServer SDK

https://www.photonengine.com/en/sdks#server中下载服务器端SDK,需要登录的,就先注册一个账号吧。

选择Server进行下载

2、安装PhotonServer SDK

下载之后安装PhotonServe,实际上安装过程就是解压过程,解压后目录文件如下:

下载后直接解压有四个文件:

build:修建工具; 

deploy:主要存放photon的服务器控制程序和服务端Demo;
doc:PhotonServer开发文档和相关介绍;
lib:Photon类库,开发服务端需要引用的;
src-server:服务端Demo源代码;

三、PhotonServer运行

打开deploy文件夹,看到包含了不同平台编译出的Photon目录,以“bin_”为前缀命名目录,选择你的电脑对应的文件夹打开。本文以win64电脑为例,打开bin_Win64文件夹,找到PhotonControl.exe可执行文件运行,在Windows桌面右下角托盘区域可看见PhotonServer的图标,击图标可以看到photon服务器控制菜单。

四、通过一个简单的案例来配置PhotonServer服务器

1、新建项目

打开visual stadio,新建项目,选择c# 类库,应用程序名字叫做TestPhotonServer.

2、引用类库

完成后,把我们的Class1.cs,改名为TestPhotonServer.cs,作为服务器端主类.

然后在当前项目添加引用,链接到刚才提到的lib文件夹目录下,添加以下引用:ExitGamesLibs.dll ,Photon.SocketServer.dll , PhotonHostRuntimeInterfaces.dll三个文件。

3、服务器代码主流程

创建新类PhotonClientPeer.cs

using Photon.SocketServer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PhotonHostRuntimeInterfaces;
 
namespace TestPhotonServer
{
    public class PhotonClientPeer : ClientPeer
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="initRequest"></param>
        public MobaClient(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)
        {
            
        }
    }
}

在主类TestPhotonServer中添加如下代码 :

using ExitGames.Logging;
using ExitGames.Logging.Log4Net;
using log4net;
using log4net.Config;
using Photon.SocketServer;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace TestPhotonServer
{
    /// <summary>
    /// 继承自ApplicationBase的类,是server的入口程序,也是启动程序
    /// </summary>    
    public class TestPhotonServer : ApplicationBase
    {    
        ///<summary>
        ///当一个客户端连接到服务器的时候调用
        ///</summary>
        protected override PeerBase CreatePeer(InitRequest initRequest)
        {
            return new PhotonClientPeer(initRequest);
        }

        /// <summary>
        /// 当服务器启动时调用
        /// </summary>
        protected override void Setup()
        {
        }

        /// <summary>
        /// 当服务器关闭时调用
        /// </summary>
        protected override void TearDown()
        {
        }
    }

4、服务器程序发布

在PhotonServer安装目录deploy文件夹下新建文件夹,命名TestPhotonServer,再在其文件夹中创建bin文件夹

在Vs项目解决方案资源管理器中选中当前项目,打开属性,选择生成选项卡,把输出路径改成上一步新建的TestPhotonServer文件夹下的bin文件夹。

.net版本修改,建议将其改成.net4.5

右击项目名选择生成,编译器将生成的文件直接输出到我们知道的文件夹下。

5、配置PhotonServer.config文件

在服务器安装目录->deploy->bin_Win64下找到,PhotonServer.config文件:

 

打开配置文件,复制MMoDemo标签内的所有内容,将其复制到与其同一级的标签下,将MMoDemo标签名改为MyGameServer

 

配置PhotonServer.config文件如下:

Name:项目名字

BaseDirectory:根目录,deploy文件夹下为基础目录

Assembly :是在生成的类库中的bin目录下与我们项目名称相同的.dll文件的名字

Type:是主类的全称,在这里是:MyServer.MyApplication,一定要包括命名空间

EnableAutoRestart:是否是自动启动,表示当我们替换服务器文件时候,不用停止服务器,替换后photon会自动加载文件

6、启动服务器

 

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值