Photon Server API

Public Member Functions | Protected Member Functions | Properties | List of all members
Photon.LoadBalancing.GameServer.GameClientPeer Class Reference
Inheritance diagram for Photon.LoadBalancing.GameServer.GameClientPeer:
Photon.Hive.HivePeer Photon.SocketServer.ClientPeer Photon.SocketServer.PeerBase

Public Member Functions

 GameClientPeer (InitRequest initRequest, GameApplication application)
 
override string ToString ()
 
override bool IsThisSameSession (HivePeer peer)
 
virtual string GetRoomCacheDebugString (string gameId)
 
- Public Member Functions inherited from Photon.Hive.HivePeer
 HivePeer (InitRequest request)
 Initializes a new instance of the HivePeer class. More...
 
bool ValidateOperation (Operation operation, SendParameters sendParameters)
 Checks if a operation is valid. If the operation is not valid an operation response containing a desciptive error message will be sent to the peer. More...
 
void RemovePeerFromCurrentRoom (int reason, string detail)
 Checks if the the state of peer is set to a reference of a room. If a room refrence is present the peer will be removed from the related room and the reference will be disposed. Disposing the reference allows the associated room factory to remove the room instance if no more references to the room exists. More...
 
void ReleaseRoomReference ()
 
void OnJoinFailed (ErrorCode result, string details)
 
void ScheduleDisconnect (int time=1000)
 
- Public Member Functions inherited from Photon.SocketServer.ClientPeer
void Trace (bool enabled, string tag)
 
- Public Member Functions inherited from Photon.SocketServer.PeerBase
void Initialize (InitRequest initRequest)
 
override string ToString ()
 
void Disconnect ()
 Closes the connection. More...
 
void AbortConnection ()
 Forces the connection to close immediately. Should only be used if "Disconnect" does not lead to a clean connection shutdown, e.g. in case of an overloaded connection. More...
 
void Flush ()
 Flushes all pending data to the socket. More...
 
byte[] InitializeEncryption (byte[] otherPartyPublicKey)
 Initializes the peer to receive and send encrypted operations with EncryptionMethod.Sha256Pkcs7. More...
 
byte[] InitializeEncryption (byte[] otherPartyPublicKey, EncryptionMethod mode)
 Initializes the peer to receive and send encrypted operations. More...
 
SendResult SendEvent (IEventData eventData, SendParameters sendParameters)
 Sends an IEventData object to the client. More...
 
SendResult SendMessage (object message, SendParameters sendParameters)
 
SendResult SendOperationResponse (OperationResponse operationResponse, SendParameters sendParameters)
 Sends the operation response to the client. More...
 
void GetStats (out int roundTripTime, out int roundTripTimeVariance, out int numFailures)
 
void SetDebugString (string message)
 
int GetLastTouch ()
 
void SetPrivateCustomTypeCache (CustomTypeCache cache)
 Sets private custom type cache. It is supposed to be used together with plugins. In other case Proptocol.TryRegisterCustomType should be used More...
 
void Dispose ()
 Disposes the peer. More...
 

Protected Member Functions

override RoomReference GetRoomReference (JoinGameRequest joinRequest, params object[] args)
 Called by HandleJoinOperation to get a room reference for a join operations. This method can be overloaded by inheritors to provide custom room references. More...
 
override void OnRoomNotFound (string gameId)
 
override void OnDisconnect (PhotonHostRuntimeInterfaces.DisconnectReason reasonCode, string reasonDetail)
 
override void OnOperationRequest (OperationRequest request, SendParameters sendParameters)
 Incoming OperationRequests are handled here. This method is being enqueued on the PeerBase.RequestFiber. More...
 
void HandleUnknownOperationCode (OperationRequest operationRequest, SendParameters sendParameters)
 
override RoomReference GetOrCreateRoom (string gameId, params object[] args)
 
override bool TryCreateRoom (string gameId, out RoomReference roomReference, params object[] args)
 
override bool TryGetRoomReference (string gameId, out RoomReference roomReference)
 
override bool TryGetRoomWithoutReference (string gameId, out Room room)
 
virtual void HandleAuthenticateOperation (OperationRequest operationRequest, SendParameters sendParameters)
 
void SetupPeer (string userId)
 
override PluginTraits GetPluginTraits ()
 
virtual void HandleDebugGameOperation (OperationRequest operationRequest, SendParameters sendParameters)
 
virtual void HandleRpcOperation (OperationRequest request, SendParameters sendParameters)
 
- Protected Member Functions inherited from Photon.Hive.HivePeer
virtual void HandleCreateGameOperation (OperationRequest operationRequest, SendParameters sendParameters)
 
virtual void HandleGameOperation (OperationRequest operationRequest, SendParameters sendParameters)
 Enqueues game related operation requests in the peers current game. More...
 
virtual void HandleJoinGameOperation (OperationRequest operationRequest, SendParameters sendParameters)
 Handles the JoinGameRequest to enter a HiveGame. This method removes the peer from any previously joined room, finds the room intended for join and enqueues the operation for it to handle. More...
 
virtual void HandleJoinOperation (OperationRequest operationRequest, SendParameters sendParameters)
 Handles the JoinGameRequest to enter a HiveGame. This method removes the peer from any previously joined room, finds the room intended for join and enqueues the operation for it to handle. More...
 
virtual void HandleLeaveOperation (OperationRequest operationRequest, SendParameters sendParameters)
 Handles the LeaveRequest to leave a HiveGame. More...
 
virtual void HandlePingOperation (OperationRequest operationRequest, SendParameters sendParameters)
 Handles a ping operation. More...
 
override void OnDisconnect (DisconnectReason reasonCode, string reasonDetail)
 Called when client disconnects. Ensures that disconnected players leave the game Room. The player is not removed immediately but a message is sent to the room. This avoids threading issues by making sure the player remove is not done concurrently with operations. More...
 
override void OnOperationRequest (OperationRequest operationRequest, SendParameters sendParameters)
 Called when the client sends an OperationRequest. More...
 
- Protected Member Functions inherited from Photon.SocketServer.ClientPeer
 ClientPeer (InitRequest initRequest)
 
- Protected Member Functions inherited from Photon.SocketServer.PeerBase
void Trace (bool enabled, object tag)
 
virtual SendResult SendData (byte[] data, SendParameters sendParameters)
 Sends bytes to the client. More...
 
virtual void OnReceive (byte[] data, SendParameters sendParameters)
 Invoked if incoming data was received for the peer. More...
 
virtual void Dispose (bool disposing)
 Disposes the internal fibers. More...
 
virtual void OnSendBufferEmpty ()
 The default behavior of OnSendBufferFull is to disconnect the client. If this behavior is changed (override) the inheritor can pause sending until OnSendBufferEmpty is called. More...
 
virtual void OnUnexpectedDataReceived (byte[] data, string debugMessage)
 This method is called if incoming data has an unexpected format. Per default this method disconnects the client. Override to change this behavior. More...
 

Properties

DateTime LastActivity [get, protected set]
 
byte LastOperation [get, protected set]
 
bool IsAuthenticated [get, set]
 
- Properties inherited from Photon.Hive.HivePeer
RoomReference RoomReference [get, set]
 Gets or sets a Caching.RoomReference when joining a Room. More...
 
string UserId [get, protected set]
 
WebRpcHandler WebRpcHandler [get, set]
 
Dictionary< string, object > AuthCookie [get, protected set]
 
AuthenticationToken AuthToken [get, protected set]
 
int HttpRpcCallsLimit [get, protected set]
 
- Properties inherited from Photon.SocketServer.PeerBase
ConnectionState ConnectionState [get, set]
 Gets the ConnectionState for this instance. More...
 
bool Connected [get]
 Gets a value indicating whether this PeerBase instance is connected. More...
 
int ConnectionId [get]
 Gets the connection id. More...
 
bool Disposed [get]
 Gets a value indicating whether the peer was disposed. More...
 
string LocalIP [get]
 Gets the IP the client connects to. More...
 
IPAddress? LocalIPAddress [get]
 Gets the IP Address the client connects to. More...
 
int LocalPort [get]
 Gets the port the client connects to. More...
 
NetworkProtocolType NetworkProtocol [get]
 Gets the network protocol type used by the peer. More...
 
IRpcProtocol Protocol [get, set]
 Gets the used IRpcProtocol protocol. More...
 
string RemoteIP [get]
 Gets the client's remote IP address. More...
 
IPAddress? RemoteIPAddress [get]
 Gets the client's remote IP address. More...
 
int RemotePort [get]
 Gets the port the client connects from. More...
 
IFiber RequestFiber [get]
 Gets fiber for incoming messages. More...
 
int RoundTripTime [get, protected set]
 Gets the last round trip time for this peer. More...
 
int RoundTripTimeVariance [get, protected set]
 Gets the last round trip time variance for this peer. More...
 
int NumFailures [get, protected set]
 
bool LocalIPAddressIsIPv6 [get]
 If true connection is using a server IPv6 endpoint. More...
 
bool SourceUsingIPv6 [get]
 If true the peer is using IPv6 to connect to the server, if the server enpoint used is not IPv6 (LocalIPAddressIsIPv6) it means the client is beeing bridged (DNS64+NAT64), also IsIPv6ToIPv4Bridged. More...
 
bool IsIPv6ToIPv4Bridged [get]
 If true the client is beeing bridged (DNS64+NAT64), also SourceUsingIPv6. More...
 

Constructor & Destructor Documentation

◆ GameClientPeer()

Photon.LoadBalancing.GameServer.GameClientPeer.GameClientPeer ( InitRequest  initRequest,
GameApplication  application 
)
inline

Member Function Documentation

◆ GetOrCreateRoom()

override RoomReference Photon.LoadBalancing.GameServer.GameClientPeer.GetOrCreateRoom ( string  gameId,
params object[]  args 
)
inlineprotectedvirtual

Reimplemented from Photon.Hive.HivePeer.

◆ GetPluginTraits()

override PluginTraits Photon.LoadBalancing.GameServer.GameClientPeer.GetPluginTraits ( )
inlineprotectedvirtual

Reimplemented from Photon.Hive.HivePeer.

◆ GetRoomCacheDebugString()

virtual string Photon.LoadBalancing.GameServer.GameClientPeer.GetRoomCacheDebugString ( string  gameId)
inlinevirtual

◆ GetRoomReference()

override RoomReference Photon.LoadBalancing.GameServer.GameClientPeer.GetRoomReference ( JoinGameRequest  joinRequest,
params object[]  args 
)
inlineprotectedvirtual

Called by HandleJoinOperation to get a room reference for a join operations. This method can be overloaded by inheritors to provide custom room references.

Parameters
joinRequestThe join request.
argsmore arguments in order to create room
Returns
An Caching.RoomReference instance.

Reimplemented from Photon.Hive.HivePeer.

◆ HandleAuthenticateOperation()

virtual void Photon.LoadBalancing.GameServer.GameClientPeer.HandleAuthenticateOperation ( OperationRequest  operationRequest,
SendParameters  sendParameters 
)
inlineprotectedvirtual

◆ HandleDebugGameOperation()

virtual void Photon.LoadBalancing.GameServer.GameClientPeer.HandleDebugGameOperation ( OperationRequest  operationRequest,
SendParameters  sendParameters 
)
inlineprotectedvirtual

◆ HandleRpcOperation()

virtual void Photon.LoadBalancing.GameServer.GameClientPeer.HandleRpcOperation ( OperationRequest  request,
SendParameters  sendParameters 
)
inlineprotectedvirtual

◆ HandleUnknownOperationCode()

void Photon.LoadBalancing.GameServer.GameClientPeer.HandleUnknownOperationCode ( OperationRequest  operationRequest,
SendParameters  sendParameters 
)
inlineprotected

◆ IsThisSameSession()

override bool Photon.LoadBalancing.GameServer.GameClientPeer.IsThisSameSession ( HivePeer  peer)
inlinevirtual

Reimplemented from Photon.Hive.HivePeer.

◆ OnDisconnect()

override void Photon.LoadBalancing.GameServer.GameClientPeer.OnDisconnect ( PhotonHostRuntimeInterfaces.DisconnectReason  reasonCode,
string  reasonDetail 
)
inlineprotected

◆ OnOperationRequest()

override void Photon.LoadBalancing.GameServer.GameClientPeer.OnOperationRequest ( OperationRequest  operationRequest,
SendParameters  sendParameters 
)
inlineprotectedvirtual

Incoming OperationRequests are handled here. This method is being enqueued on the PeerBase.RequestFiber.

Parameters
operationRequestThe operation Request.
sendParametersThe send parameters.

Implements Photon.SocketServer.PeerBase.

◆ OnRoomNotFound()

override void Photon.LoadBalancing.GameServer.GameClientPeer.OnRoomNotFound ( string  gameId)
inlineprotectedvirtual

Reimplemented from Photon.Hive.HivePeer.

◆ SetupPeer()

void Photon.LoadBalancing.GameServer.GameClientPeer.SetupPeer ( string  userId)
inlineprotected

◆ ToString()

override string Photon.LoadBalancing.GameServer.GameClientPeer.ToString ( )
inline

◆ TryCreateRoom()

override bool Photon.LoadBalancing.GameServer.GameClientPeer.TryCreateRoom ( string  gameId,
out RoomReference  roomReference,
params object[]  args 
)
inlineprotectedvirtual

Reimplemented from Photon.Hive.HivePeer.

◆ TryGetRoomReference()

override bool Photon.LoadBalancing.GameServer.GameClientPeer.TryGetRoomReference ( string  gameId,
out RoomReference  roomReference 
)
inlineprotectedvirtual

Reimplemented from Photon.Hive.HivePeer.

◆ TryGetRoomWithoutReference()

override bool Photon.LoadBalancing.GameServer.GameClientPeer.TryGetRoomWithoutReference ( string  gameId,
out Room  room 
)
inlineprotectedvirtual

Reimplemented from Photon.Hive.HivePeer.

Property Documentation

◆ IsAuthenticated

bool Photon.LoadBalancing.GameServer.GameClientPeer.IsAuthenticated
getsetprotected

◆ LastActivity

DateTime Photon.LoadBalancing.GameServer.GameClientPeer.LastActivity
getprotected set

◆ LastOperation

byte Photon.LoadBalancing.GameServer.GameClientPeer.LastOperation
getprotected set