예제 #1
0
        protected override void OnOperationRequest(Photon.SocketServer.OperationRequest operationRequest, Photon.SocketServer.SendParameters sendParameters)
        {
            if (operationRequest.OperationCode == (byte)ClientToServerOpCode.Ping)
            {
                (this as Regulus.Remoting.IResponseQueue).Push((int)ServerToClientOpCode.Ping, new Dictionary <byte, byte[]>());
            }
            else if (operationRequest.OperationCode == (byte)ClientToServerOpCode.CallMethod)
            {
                var entityId   = new Guid(operationRequest.Parameters[0] as byte[]);
                var methodName = System.Text.Encoding.Default.GetString(operationRequest.Parameters[1] as byte[]);

                object par      = null;
                Guid   returnId = Guid.Empty;
                if (operationRequest.Parameters.TryGetValue(2, out par))
                {
                    returnId = new Guid(par as byte[]);
                }

                var methodParams = (from p in operationRequest.Parameters
                                    where p.Key >= 3 orderby p.Key
                                    select p.Value as byte[]).ToArray();

                _Push(entityId, methodName, returnId, methodParams);
            }
        }
예제 #2
0
 /// <summary>
 ///   The send operation request.
 /// </summary>
 /// <param name = "operationRequest">
 ///   The operation request.
 /// </param>
 public void SendOperationRequest(OperationRequest operationRequest)
 {
     this.fiber.Enqueue(
         () =>
         this.PhotonClient.OpCustom(
             operationRequest.OperationCode,
             operationRequest.Parameters,
             true,
             0));
 }
        public void JoinGameRequestTest()
        {
            var request = new Photon.SocketServer.OperationRequest((byte)OperationCode.JoinGame)
            {
                Parameters = new System.Collections.Generic.Dictionary <byte, object>()
                {
                    { (byte)ParameterKey.GameProperties, new Hashtable {
                          { (byte)GameParameter.EmptyRoomTTL, null }
                      } },
                    { (byte)ParameterKey.GameId, null },
                }
            };

            var requestObj = new CreateGameRequest(Photon.SocketServer.Protocol.GpBinaryV162, request, "");
        }
예제 #4
0
 /// <summary>
 ///   Sends a couple of operation requests.
 /// </summary>
 /// <param name = "operationRequests">
 ///   The operation requests.
 /// </param>
 public void SendOperationRequests(OperationRequest[] operationRequests)
 {
     this.fiber.Enqueue(
         () =>
             {
                 foreach (OperationRequest operationRequest in operationRequests)
                 {
                     this.PhotonClient.OpCustom(
                         operationRequest.OperationCode,
                         operationRequest.Parameters,
                         true,
                         0);
                 }
             });
 }
예제 #5
0
 /// <summary>
 ///   The send operation request.
 /// </summary>
 /// <param name = "operationRequest">
 ///   The operation request.
 /// </param>
 public void SendOperationRequest(OperationRequest operationRequest)
 {
     this.fiber.Enqueue(
         () =>
         this.PhotonClient.OpCustom(
             operationRequest.OperationCode,
             operationRequest.Parameters,
             true,
             0));
 }
 public override void OnOperationRequest(Photon.SocketServer.OperationRequest operationRequest, Photon.SocketServer.SendParameters sendParameters, ClientPeer peer)
 {
     throw new NotImplementedException();
 }