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

在上回”一看就会的PhotonServer使用入门(一)“中,说了服务端的创建,这回就说客户端的创建。

在”PhotonServer的目录说明“里,说了 Photon3DotNet.dll 是客户端库,其实还忘说了一点:Photon3Unity3D.dll 也是客户端库。

using ExitGmes.Client.Photon;

现在开始进入正题。如上所示,和上回一样,先引入。

然后定义一个类,并实现 IPhotonPeerListener 接口以监听服务端消息,如下所示:

class C类 : IPhotonPeerListener //监听服务端消息
{
	public void DeBugReturn(DebugLeyel level, string message) //日志回调,日志输出
	{
	}

	public void OnEvent(EventData eventData) //
	{
	}

	public void OnOperationResponse(OperationResponse operationResponse) //得到服务端响应时被调用
	{
        Dictionary<byte, object> dic = operationResponse.Parameters; //
	}

	public void OnStatusChanged(StatusCode statusCode) //连接状态改变时被调用
	{
    	//StatusCode是个枚举
	    //statusCode == StatusCode.Connect 表示连接成功
	}
}

之后,在启动服务端方法中,写入以下方法体:

C类 c = new C类();
PhotonPeer peer = new PhotonPeer(c, ConnectionProtocol.Tcp);
peer.Connect("服务端地址:端口", "服务端名"); //连接服务端

while(statusCode != StatusCode.Connect) //调用 Connect 该请求会被加入到队列中,并不会马上连接服务端
{
	peer.Service(); //所以还需要调用Service来检测队列里是否有未发送的请求
}

至此,完成。

可以尝试使用下面代码给服务端发送消息:

byte operationCode = 0; //操作码,是byte类型,允许-128~127之间

Dictionary<byte, object> dic = new Dictionary<byte, object>(); //该Dictionary用于存储参数
dic.Add(operationCode, "消息一");

operationCode = 1;
dic.Add(operationCode, "消息二");

operationCode = 0;
peer.OpCustom(operationCode, dic, true); //向服务端发起请求,参数true表示要确保发到服务端
peer.Service();

那么,如何在Unity中使用呢,看这里:一看就会的PhotonServer使用入门(三)

待补充

猜你喜欢

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