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

2023-11-05

目录

 

一、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、启动服务器

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

游戏服务器PhotonServer(一)———PhotonServer环境配置 的相关文章

  • Spark创建hive表报错 ROW FORMAT DELIMITED is only compatible with ‘textfile‘, not ‘orc‘

    创建hive表失败 报错异常信息 Operation not allowed ROW FORMAT DELIMITED is only compatible with textfile not orc line 1 pos 0 SQL cr
  • 有序链表转换成二叉树

    1 问题描述 给定一个单链表 其中的元素按升序排序 将其转换为高度平衡的二叉搜索树 本题中 一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 示例 给定的有序链表 10 3 0 5 9 一个可能的答案是 0
  • typora安卓_经验

    同一个系统生态数据共享很简单 可若是安卓 windows ios三个系统呢 配上BGM阅读体验更佳 由于我的设备是安卓手机 windows电脑 以及ipad 三个不同的系统之间 有时信息和数据的交流并不是特别方便 所以需要一个工作流 借助一
  • 深度学习模型部署的步骤和相关注意事项

    文章目录 深度学习模型部署的步骤和相关注意事项 什么是模型部署 步骤1 选择合适的部署环境 步骤2 选择合适的部署框架 步骤3 将模型转换为部署格式 步骤4 创建API接口 步骤5 部署模型 总结 深度学习模型部署的步骤和相关注意事项 什么
  • SQLi-LABS Less-11&&Less-12

    Less 11题目 使用bp抓包进行观察 得知这是POST注入 进行测试 猜字段数 获显示位 查数据库名 查表名 查列名 查列里面的内容 Less 12题目 Less 12具体做法和Less 11一样只不过闭合的姿势不一样而已 由bp抓包得
  • 解决Windows下的mysql Access denied for user ‘root‘@‘localhost‘ 和 远程连接数据库问题

    问题 Access denied for user root localhost using password YES 这是root帐户默认不开放远程访问权限 所以需要修改一下相关权限 解决方案 打开MySQL目录下的my ini文件 在文
  • linux swap shayisi,临时邮箱,10分钟邮箱域名收集(持续更新)

    临时邮箱 10分钟邮箱域名收集 持续更新 如果你的网站开通了邮箱注册功能 那么你肯定不喜欢注册的人是 临时 的 希望下面收集到的临时邮箱 10分钟邮箱 域名能帮助到你 9em org quickemail info wmail2 com s
  • 软件架构详解(附图)

    软件架构 software architecture 软件架构 software architecture 是一系列相关的抽象模式 用于指导大型软件系统各个方面的设计 软件架构是一个系统的草图 软件架构描述的对象是直接构成系统的抽象组件 各
  • springboot2.0入门(三)----定义编程风格+jackjson使用+postMan测试

    一 RESTFul风格API 1 优点 看Url就知道要什么资源 看http method就知道针对资源干什么 看http status code就知道结果如何 HTTP方法体现对资源的操作 GET 获取资源 POST 添加资源 PUT 修
  • python姿态检测实现多人多姿态识别python行为识别openpose行为骨骼框架检测动作识别动作检测行为动作分类

    效果演示 视频演示 python行为识别行为骨骼框架检测动作识别动作检测行为动作分类 项目下载链接 https download csdn net download babyai996 87552750 0环境项目配置教程 https do
  • PyTorch 2.0 实操:为 HuggingFace 和 TIMM 模型提速!

    PyTorch 2 0 通过简单一行 torch compile 就可以使模型训练速度提高 30 200 本教程将演示如何真实复现这种提速 torch compile 可以轻松地尝试不同的编译器后端 进而加速 PyTorch 代码的运行 它
  • 资深人士对大数据的解析

    在银行做了两年的数据分析和挖掘工作 较少接触互联网的应用场景 因此 一直都在思考一个问题 互联网和金融 在数据挖掘上 究竟存在什么样的区别 在对这个问题的摸索和理解过程中 发现数据挖掘本身包含很多层次 并且模型本身也是存在传统和时髦之分的
  • VS code更新后不在原来位置

    1 大家可能遇到这样一种情况 安装好VS Code后 直接把安装好的目录拷贝到D盘 但是一旦更新 就会重新安装到C Users Users AppData Local Programs 目录下 2 正确处理方式 修改注册表 位置 计算机 H
  • python计算一个三位数个位数之和

    1 输入一个三位数 n input 请输入一个三位数 n int n 将 字符串类型 转成 数值 456 2 得到百位b100 b100 n 100 3 得到十位b10 456 gt 45 gt 5 b10 n 10 10 4 得到个位b1
  • anaconda常用命令及常见错误与解决方法

    一 常用命令 用pip安装依赖包时 默认是从国外下载 可以指定国内源 速度飞快 pip install i 国内镜像地址 包名 例如 pip install i https mirrors aliyun com pypi simple nu
  • 怎么修改服务器的代码,怎么修改云服务器上的源代码

    怎么修改云服务器上的源代码 内容精选 换一换 本节操作介绍购买云耀云服务器的操作步骤 购买时 为减少您配置参数的时间 部分参数由系统自动分配 以下参数配置供你了解系统的默认配置 购买云耀云服务器仅支持 包年 包月 的计费方式 请您在购买前确

随机推荐

  • js通过URL下载服务器文件(可行方法)

    本文讲述已知文件在服务器的地址 如何下载至本地 其他博客分享的一般是这两种 1 通过window open window open https 1 1 1 1 test txt 2 通过get表单请求 var form
  • 深度医疗(3) - 基于深度学习肺部病变诊断识别

    深度医疗是笔者基于深度学习的医学项目应用开发实践 经过整理输出了文档和本系列课程 希望通过分享可以和大家共同讨论 相互学习 探索更好的解决方案 笔者是一名普通的大数据和人工智能领域从业者 过程中如有错误和理解不到位的地方请广大同仁不吝赐教
  • Oil Deposits(BFS)

    The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits GeoSurvComp works with one
  • 如何查询list对象嵌套list

    很简单 就比如说咱们查询一个一对多的表 比如有个学生表 和关联家长表 学生表有个字段是家长信息 每个学生的家长信息用集合来存储 这样就构造了一个场景 student表 id 主键 varchar name varchar parentlis
  • 每日浅读SLAM论文——简析Cartographer

    文章目录 二维激光SLAM 简单框架 前端 scan matching Submaps构建 后端 分支定界优化csm CorrelativeScanMatch 代码实现框架 Cartographer 论文名 Real Time Loop C
  • Ubuntu安装ping工具

    Ubuntu安装ping工具 apt get install inetutils ping 本文转自 wangpengtai 51CTO博客 原文链接 http blog 51cto com wangpengtai 1964033 如需转载
  • Scientific Linux 6.1 RC1 发布,免费的企业级Linux

    CentOS的步伐显然是慢了些 它在7月9日才刚刚推出基于RHEL 6 0的 CentOS 6 0 而基于RHEL 6 1的Scientific Linux 6 1 RC1版就已经发布了 和CentOS一样 Scientific Linux
  • STM32最小核心板使用TIM3和TIM4,分别输出一个PWM波形实现2个 LED呼吸灯的效果

    文章目录 前言 一 PWM 1 PWM定义 2 PWM参数 3 基本原理 4 PWM输出模式的区别 5 PWM产生 7 PWM的计数模式 8 PWM相关配置寄存器 8 1 捕获 比较模式寄存器 TIMx CCMR1 8 2 捕获 比较使能寄
  • 缘计算开源框架EdgeXFoundry的配置参数

    EdgeXFoundry的配置参数 Notes on device profiles 关于设备配置文件的说明 The device profile 设备配置文件 coreCommands deviceCommands deviceResou
  • Git版本管理

    常用命令 git clone xxx git pull git push git branch xxx git switch xxx 分支管理 master主分支 主干分支 fixed或dev分支合并过来后需要打tag 从fixed合并打小
  • vue+springboot+springcloud项目实战(1)- 项目简介及环境搭建

    Day01 光子商城 出自尚硅谷雷丰阳老师的电商项目谷粒商城 基于SpringBoot2 x SpringCould 2 x redis docker vue 分布式 微服务 前后端分离 一 项目介绍 一个B2C模式的电商平台 向用户销售自
  • Matlab画图技巧

    二维图像 设置图片位置和大小 set gcf Position a b c d a b c d 分布代表图片的起始点位置 图片的长和高 在绘制一些较大的图片的时候 可先将图片调整好大小 拖拽到合适的位置 然后在工具栏编辑中选择图窗属性复制P
  • 如何区分GPT-3.5和GPT-4

    一些宣称自己使用的是GPT 4的网站其实用的GPT 3 5 通过问问题比较难区分 发现了一个很好区分的问题 鲁迅为什么暴打周树人 GPT 4会说他们是同一个人 GPT 3 5会认为他们是两个人 回答非常稳定 重新生成也是一样 参考 http
  • linux怎么查看ip地址

    linux怎么查看IP地址 怎么使用命令来查看IP地址 如下图教您怎么操作 演示环境 centos7 方法一 首先打开linux操作系统在进入到界面 桌面右键打开终端 在终端里输入命令后按下回车键 ifconfig a 我们将看到ens33
  • C++ 函数的默认参数

    黑马程序员C P95 函数的默认参数 内容比较简单 1 函数可以有默认参数 优先级低于重新指定的参数 2 函数参数列表中的默认参数必须再最右边且连续 3 函数声明和实现不能同时指定默认参数
  • python解释器错误

    pycharm中python解释器报错 Cannot run program C Users Anaconda3 python exe in directory XX createProgress error 2 系统找不到指定文件 pyc
  • 关于Arcengine实现Geoprocessor GenerateNearTable近邻分析出现COM错误问题

    关于Arcengine实现Geoprocessor GenerateNearTable近邻分析出现COM错误问题 关于近邻分析代码 GenerateNearTable newtable new GenerateNearTable newta
  • 2023年机器人与软件工程前沿国际会议(FRSE 2023)

    机器人与软件工程前沿国际会议 FRSE 2023 International Conference on the Frontiers of Robotics and Software Engineering FRSE 2023 由长沙理工大
  • 修改element el-switch样式,使文字在内部展示

    html代码块
  • 游戏服务器PhotonServer(一)———PhotonServer环境配置

    目录 一 PhotonServer介绍 1 为什么选择 Photon Server 2 Photon Server 有什么缺点 二 PhotonServer下载与安装 1 下载PhotonServer SDK 2 安装PhotonServe