Photon Server

  PhotonServer官网:https://www.photonengine.com/en/OnPremise

  官网的帮助文档:Documentatain

  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.下载Server SDK(On-Premises)

  进入官网,点击页面右上角的SDKs,然后在Choose for your project的条件中选中Server,可以看到图标,点击图标后点Download SDK下载exe文件。运行或右键解压服务器端,不要出现中文目录,解压出\ Photon-OnPremise-Server-SDK_v4-0-29-11263。

  

  \deploy:部署服务器应用,放置开发服务器的代码及相关文件(\deploy\bin_Win64\PhotonControl.exe:服务器程序运行文件,证书存放的在\deploy\bin_Win64)

  \doc:存放帮助文档

  \lib:存放动态链接库(Photon3Unity3D.dll是用来开发基于Unity3D的客户端,好像Photon.SocketServer.dll是用来开发服务器端)

  \src-server:Photon Server的源码

2. 配置PhotonServer.config文件

  一个Photon instance代表一类配置,一个Photon instance可以包含多个服务器端的应用。打开deploy\bin_Win64\PhotonServer.config

<MMoDemoInstance  <!--这块配置内容的名称,即一个Photon instances-->
        MaxMessageSize="512000"
        MaxQueuedDataPerPeer="512000"
        PerPeerMaxReliableDataInTransit="51200"
        PerPeerTransmitRateLimitKBSec="256"
        PerPeerTransmitRatePeriodMilliseconds="200"
        MinimumTimeout="5000"
        MaximumTimeout="30000"
        DisplayName="MMO Demo"  <!--显示在Photon instances的名称-->
        >

        <!-- 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="5055"
                OverrideApplication="MMoDemo">
            </UDPListener>
        </UDPListeners>

        <!-- 0.0.0.0 opens listeners on all available IPs. Machines with multiple IPs should define the correct one here. -->
        <!-- Port 4530 is Photon‘s default for TCP connecttions. -->
        <!-- A Policy application is defined in case that policy requests are sent to this listener (known bug of some some flash clients) -->
        <TCPListeners>
            <TCPListener
                IPAddress="0.0.0.0"
                Port="4530"
                PolicyFile="Policy\assets\socket-policy.xml"
                InactivityTimeout="10000"
                OverrideApplication="MMoDemo"
                >
            </TCPListener>
        </TCPListeners>

        <!-- Policy request listener for Unity and Flash (port 843) and Silverlight (port 943)  -->
        <PolicyFileListeners>
          <!-- multiple Listeners allowed for different ports -->
          <PolicyFileListener
            IPAddress="0.0.0.0"
            Port="843"
            PolicyFile="Policy\assets\socket-policy.xml"
            InactivityTimeout="10000">
          </PolicyFileListener>
          <PolicyFileListener
            IPAddress="0.0.0.0"
            Port="943"
            PolicyFile="Policy\assets\socket-policy-silverlight.xml"
            InactivityTimeout="10000">
          </PolicyFileListener>
        </PolicyFileListeners>

        <!-- WebSocket (and Flash-Fallback) compatible listener -->
        <WebSocketListeners>
            <WebSocketListener
                IPAddress="0.0.0.0"
                Port="9090"
                DisableNagle="true"
                InactivityTimeout="10000"
                OverrideApplication="MMoDemo">
            </WebSocketListener>
        </WebSocketListeners>

        <!-- 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="MMoDemo">
            <!-- MMO Demo Application -->
            <Application
                Name="MMoDemo"<!--这个应用的名称,上面会用到 -->
                BaseDirectory="MmoDemo"<!--\deploy下这个服务器应用的文件名称 -->
                Assembly="Photon.MmoDemo.Server"<!-—程序集名称 -->
                Type="Photon.MmoDemo.Server.PhotonApplication"<!--主程序名称-->
                ForceAutoRestart="true"<!--是否自动重启-->
                WatchFiles="dll;config"
                ExcludeFiles="log4net.config">
            </Application>

            <!-- CounterPublisher Application -->
            <Application
                Name="CounterPublisher"
                BaseDirectory="CounterPublisher"
                Assembly="CounterPublisher"
                Type="Photon.CounterPublisher.Application"
                ForceAutoRestart="true"
                WatchFiles="dll;config"
                ExcludeFiles="log4net.config">
            </Application>    

        </Applications>
    </MMoDemoInstance>

原文地址:https://www.cnblogs.com/DonYao/p/8454956.html

时间: 2024-10-04 02:57:18

Photon Server的相关文章

What is Photon Server?

http://blog.csdn.net/menuconfig/article/details/8215033 Photon Server是一套套裝的遊戲伺服器,以往開發線上遊戲都必需自行花費大筆的研發資金和人力先從研發遊戲引擎和伺服器開始,後來慢慢的遊戲引擎開始走向套裝化,研發人員有許多現成的遊戲引擎可以選擇,像是unreal或是unity等等,接著,遊戲伺服器也開始朝套裝發展,市面上常見的套裝Game Server有 smart fox server . electro server 5 .

Photon Server伺服务器在LoadBalancing的基础上扩展登陆服务

一,如何创建一个Photon Server服务 参见此博客 快速了解和使用Photon Server 二, 让LoadBalancing与自己的服务一起启动 原Photonserver.config文件中需要改动的地方有4处 1.  <UDPListeners> 标签 Udp监听端口 <UDPListeners> <UDPListener IPAddress="0.0.0.0" Port="5055" OverrideApplicati

Photon Server LoadBalancing搭建

准备:申请3台Windows虚拟机. 3台虚拟机上都部署上Photon Server. 一.主虚拟机上部署MasterServer. (1)在第一台虚拟机中,部署的Photon Server目目录下找到Loadbalancing目录,删除GameServer文件夹 (2)修改Master的配置文件.Photon.LoadBalancing.dll.config (在目录Master/bin/中) (3)修改PhotonServer.config 配置文件.(在目录 bin_Win64/ 中) 删

Photon Server 实现注册与登录(二) --- 服务端代码整理

一.有的代码前端和后端都会用到.比如一些请求的Code.使用需要新建项目存放公共代码. 新建项目Common存放公共代码: EventCode :存放服务端自动发送信息给客户端的code OperationCode : 区分请求和响应 ReturnCode : 服务端响应码 ParameterCode : 解析参数Toos/DicTool.cs : 数据基本上都是用Dictionary读取,这里工具话一下. 二.代码 Toos/DicTool.cs using System.Collection

Photon Server 实现注册与登录(四) --- 服务端响应登陆和注册

前面已经整理过了服务端代码,MyGameServer.cs 和 ClientPeer.cs 对请求和响应进行了拆分.接下来处理对前端的响应 一.响应登陆请求 之前整理中,响应前端请求主要在类ClientPeer.cs 中 OnOperationRequest 函数.该函数会根据前端传递的code从Handler管理组中取出响应的Handler进行响应. //ClientPeer.cs 中接收请求的函数 //响应前端请求 protected override void OnOperationReq

Photon Server 实现注册与登录(三) --- 前端UI设计和发起请求

一.打开之前的测试项目.先将服务端代码编译一下,在 bin/Debug/目录下会发现有一个Common.dill.我们相应导入到前端使用.直接拖拽到相应地方 UI相应布局属于前端操作,这里就不做介绍了.详细查看视频:https://www.bilibili.com/video/av35109390/?p=70 二.代码处理:跟后端一样,前端发起请求的地方也会随着项目变大而变多,所以也得单独区分出每个请求独自管理. Request.cs 请求基类 LoginRequest.cs 登录请求逻辑 Re

Photon Server初识(三) ---ORM映射改进

一:新建一些管理类, 二.实现每个管理类 (1)NHibernateHelper.cs 类,管理数据库连接 1 using NHibernate; 2 using NHibernate.Cfg; 3 4 namespace Nbibernate 5 { 6 public class NHibernateHelper 7 { 8 private static ISessionFactory _sessionFactory; 9 10 private static ISessionFactory S

Unity连Photon服务器入门详解

Photon是目前比较好用的游戏服务器.目前网上对于Photon的服务器讲解比较少,最近也对Photon做了初步的了解,做一个极其详细的入门. 首先就是得下载Photon咯 https://www.photonengine.com/en/OnPremise/Download 这个是服务器下载.(上传图片的功能崩溃了...) 这个服务器是有权限的,免费的有100人上限和30天免费,调试用的话,100人的还是很合算的. https://www.photonengine.com/en/OnPremis

二、Photon v4引擎基础开发框架——开发第一个Photon程序

Photon基础开发框架 Photon (v4)的基本框架.开发框架主要Photon和游戏逻辑(C#)两个部分,如下图最新的Photon v4支持的4种底层协议,游戏开发逻辑Photon目前主要划分为Load Balancing 和MMO(大型多人同时在线游戏). 一.Photon服务端示例 1.服务端开发 新建解决方案TestPhotonServer并新建类库项目MyPhotonServer,类库添加Photon引用(可在photon安装目录的lib里找到) Photon.SocketServ