private void CreatePeerInternal(object state) { try { InitRequest initRequest = (InitRequest)state; PeerBase pObj = this.CreatePeer(initRequest); if (pObj == null) { initRequest.PhotonPeer.DisconnectClient(); } else { initRequest.PhotonPeer.SetUserData(pObj); this.IncrementPeerCounter(); byte[] data = initRequest.Protocol.SerializeInitResponse(); SendResult result = (SendResult)initRequest.PhotonPeer.Send(data, MessageReliablity.Flush | MessageReliablity.Reliable, 0, pObj.MessageContentType); if (log.IsDebugEnabled) { log.DebugFormat("OnInit - response sent to ConnId {0} with SendResult {1}", new object[] { initRequest.PhotonPeer.GetConnectionID(), result }); } if (operationDataLogger.IsDebugEnabled) { operationDataLogger.DebugFormat("OnInit - ConnID={0}, send data=({1} bytes) {2}", new object[] { initRequest.PhotonPeer.GetConnectionID(), data.Length, BitConverter.ToString(data) }); } } } catch (Exception exception) { log.Error(exception); } }
public static void SimulateReceive(PeerBase peer, byte[] data, SendParameters sendParameters) { ((IManagedPeer)peer).Application_OnReceive(data, sendParameters, 0, 0, 0); }
/// <summary> /// This method simlates a disconnect. /// This method is useful for testing. /// </summary> /// <param name="peer"> The disconnected peer.</param> public static void SimulateDisconnect(PeerBase peer) { ((IManagedPeer)peer).Application_OnDisconnect(DisconnectReason.ClientDisconnect, string.Empty, 0, 0, 0); }
/// <summary> /// Invokes <see cref="M:Photon.SocketServer.PeerBase.OnOperationRequest(Photon.SocketServer.OperationRequest,Photon.SocketServer.SendParameters)"/>. /// This method is useful for testing. /// </summary> /// <param name="peer"> The peer.</param> /// <param name="operationRequest">The operation request.</param> /// <param name="sendParameters">The send Parameters.</param> public static void InvokeOnOperationRequest(PeerBase peer, OperationRequest operationRequest, SendParameters sendParameters) { peer.RequestFiber.Enqueue(() => peer.OnOperationRequest(operationRequest, sendParameters)); }