Photon Server API
Public Member Functions | Protected Member Functions | Properties | List of all members
Photon.SocketServer.Rpc.Peer Class Reference

Inheritance class of PeerBase. This class uses an IOperationHandler that can be set with SetCurrentOperationHandler. This is useful if operations should have a different behavior when the state of the peer changes, e.g. after authentication. More...

Inheritance diagram for Photon.SocketServer.Rpc.Peer:
Photon.SocketServer.ClientPeer Photon.SocketServer.PeerBase Photon.LoadBalancing.MasterServer.MasterClientPeer Photon.MmoDemo.Server.MmoPeer

Public Member Functions

void SetCurrentOperationHandler (IOperationHandler operationHandler)
 Sets CurrentOperationHandler. More...
 
- 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

 Peer (InitRequest initRequest)
 Initializes a new instance of the Peer class. More...
 
override void OnDisconnect (DisconnectReason reasonCode, string reasonDetail)
 Executed when a peer disconnects. This method is being enqueued to the fiber. More...
 
- Protected Member Functions inherited from Photon.SocketServer.ClientPeer
 ClientPeer (InitRequest initRequest)
 
- Protected Member Functions inherited from Photon.SocketServer.PeerBase
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

IOperationHandler CurrentOperationHandler [get]
 Gets the current IOperationHandler. OnOperationRequest and OnDisconnect calls the CurrentOperationHandler. More...
 
- 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...
 

Detailed Description

Inheritance class of PeerBase. This class uses an IOperationHandler that can be set with SetCurrentOperationHandler. This is useful if operations should have a different behavior when the state of the peer changes, e.g. after authentication.

Constructor & Destructor Documentation

Photon.SocketServer.Rpc.Peer.Peer ( InitRequest  initRequest)
inlineprotected

Initializes a new instance of the Peer class.

Member Function Documentation

override void Photon.SocketServer.Rpc.Peer.OnDisconnect ( DisconnectReason  reasonCode,
string  reasonDetail 
)
inlineprotectedvirtual

Executed when a peer disconnects. This method is being enqueued to the fiber.

Implements Photon.SocketServer.PeerBase.

void Photon.SocketServer.Rpc.Peer.SetCurrentOperationHandler ( IOperationHandler  operationHandler)
inline

Sets CurrentOperationHandler.

Parameters
operationHandlerThe new operation handler.

Property Documentation

IOperationHandler Photon.SocketServer.Rpc.Peer.CurrentOperationHandler
get

Gets the current IOperationHandler. OnOperationRequest and OnDisconnect calls the CurrentOperationHandler.

The operation handler can be changed with SetCurrentOperationHandler. This allows a different behavior when a peer's state changes: For instance, after a login operation many operations will no longer have to return an error and can actually do something. Using different IOperationHandlers is much more elegant than checking a "isLoggedIn" variable with every request.