一看就会的PhotonServer使用入门(一)

下面引入的全部库都可以在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) //收到客户端请求时被调用
    {
        byte operationCode = 0; //操作码,是byte类型,允许-128~127之间
        Dictionary<byte, object> dic = new Dictionary<byte, object>(); //

        OperationResponse response = new OperationResponse(operationCode, dic);

        SendOperationResponse(response, 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 了。

客户端的使用看这里:一看就会的PhotonServer使用入门(二)

待补充。

猜你喜欢

转载自blog.csdn.net/m0_46419510/article/details/113356628