photonServer是由photon发布的一个网络框架,其封装了UDP和TCP通信机制让用户可以直接调用API实现网络游戏通信
1 photonServer下载安装
进入Photon官网的SDK选项,选择下载Server。目前Server版本已经更新到v5,这里我为了和教程保持一致下载的是老版本v4.下载完后按照安装指引安装即可
PhotonServer免费版初始只支持20人联机,创建photon账号后可以免费获取将服务器扩容到100人的key。如果要更大容量就需要使用付费版
2 Visual Studio安装
我之前一直使用VS Code,和Visual Studio还有一定区别。这里我们下载Visual Studio Community版本
下载时,如从官网下载过慢,可以将下载链接换为国内源(网上教程很多)
安装Visual Studio时,由于我们做的是unity游戏开发,在安装选项中添加.NET桌面开发和Unity游戏开发。
2 photonserver工作空间
所有可执行的服务器程序都位于Photon-OnPremise-Server-SDK_v4-0-29-11263\deploy文件夹下。如果我们要创建一个新的服务器程序,在该文件夹下面创建新文件夹,并在新建文件夹下面创建文件夹bin。所有的服务器dll文件要放在bin下面
这里我们新建文件夹PSTest,并在下面新建文件夹bin
在编写服务器程序之前,我们要导入photonserver的框架。在解决方法资源管理器中,我们右键依赖性添加项目引用,选择Photon-OnPremise-Server-SDK_v4-0-29-11263\lib 文件夹下面的以下dll文件
我们进入Visual Studio,新建项目类型类库。创建类PSTest
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon.SocketServer;
namespace PSTest
{
public class PSTest : ApplicationBase
{
// when client connects
protected override PeerBase CreatePeer(InitRequest initRequest)
{
PSPeer peer = new PSPeer(initRequest);
return peer;
}
protected override void Setup()
{
}
protected override void TearDown()
{
}
}
}
PSTest为服务器入口类,用于启动服务器,继承自ApplicationBase。该类必须实现方法CreatePeer,Setup,TearDown,分别在客户端连接上服务器,服务器启动,服务器关闭时自动进行调用。其中CreatePeer方法要返回一个PeerBase对象,我们后面要单独创建。
在photonServer中的Peer即为对socket的封装。
PSPeer类