在上回”一看就会的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使用入门(三)
待补充