下面引入的全部库都可以在Photon的lib目录中引入,比如引入 Photon.SocketServer.dll 库,关于PhotonServer的目录点击这里。
引入后,创建一个类,如下所示:
using Photon.SocketServer;
//创建class并继承ApplicationBase
//因为所有的服务端程序都需要ApplicationBase做为入口程序(启动程序)
class A类 : ApplicationBase //而继承ApplicationBase就需要实现里面的抽象方法
{
protected override PeerBase CreatePeer(InitReguest initReguest) //当客户端连接到服务端时,会被调用
{
}
protected override void Setup() //初始化,当服务端启动时会被调用
{
}
protected override void TearDown() //服务端程序终止时被调用
{
}
}
上面代码里方法中的参数 InitReguest 包含了客户端信息。
之后再创建一个类,并继承 PeerBase 类。
using Photon.SocketServer;
using PhotonHostRuntimeInterfaces;
//这个类用来与客户端进行通信
class B类 : PeerBase //同样有两个重新方法需要重写
{
public B类(IRpcProtcot iRpcProtcot, IPhotonPeer iPhotonPeer) : base(iRpcProtcot, iPhotonPeer)
{
}
protected override void OnDisconnect(PhotonHostRuntimeInterfaces.DisconnectReason reasonCode, string reasonDetall)
{
}
protected override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters)
{
}
}
上面构造方法中的参数 IRpcProtcot 用做通信协议,而 IPhotonPeer 是客户端与服务端进行通信的东西,也存储了客户端的信息。
下面开始写A类中 CreatePeer 方法的方法体:
protected override PeerBase CreatePeer(InitReguest initReguest) //
{
return new B类(initRequset.Protocol, initRequset.PhotonPeer photonPeer); //这个对象会返回给PhotonServer
}
最后,编译服务端程序。
在主目录 deploy 上,创建一个目录,该目录要有 bin 文件夹,并把编译后的服务器程序放入其中。
并且需要在”平台目录“中的 PhotonServer.config 文件中进行配置。在 <Applications Default="Lite"> 内,添加如下信息:
<Application
Name="服务器名"
BaseDirectory="服务端程序所在目录(刚才创建的目录)名"
Assembly="主类所在dll名"
Type="主类所在命名空间名.主类的类名">
</Application>
到这里,就可以启动 PhotonServer 了。