Photon Server API
This class is a base class for server connections. The RequestFiber processes all incoming messages. More...
Public Member Functions | |
| 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 | |
| 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... | |
| abstract void | OnDisconnect (DisconnectReason reasonCode, string reasonDetail) |
| The connection was closed. 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 | |
| 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... | |
This class is a base class for server connections. The RequestFiber processes all incoming messages.
|
inline |
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.
|
inline |
Closes the connection.
|
inline |
Disposes the peer.
|
inlineprotectedvirtual |
Disposes the internal fibers.
| disposing | True if called from Dispose(). |
Reimplemented in Photon.LoadBalancing.LoadShedding.LatencyMonitor, and Photon.MmoDemo.Server.MmoPeer.
|
inline |
Flushes all pending data to the socket.
|
inline |
|
inline |
|
inline |
|
inline |
Initializes the peer to receive and send encrypted operations with EncryptionMethod.Sha256Pkcs7.
| otherPartyPublicKey | The other party public key. |
|
inline |
Initializes the peer to receive and send encrypted operations.
| otherPartyPublicKey | The other party public key. |
| mode | Specifies the EncryptionMethod. |
|
protectedpure virtual |
The connection was closed.
Implemented in Photon.Hive.HivePeer, Photon.Hive.Tests.TestHivePeer, Photon.LoadBalancing.GameServer.OutgoingMasterServerPeer, Photon.LoadBalancing.LoadShedding.LatencyMonitor, Photon.SocketServer.Rpc.Peer, Photon.LoadBalancing.LoadShedding.LatencyPeer, and Photon.LoadBalancing.MasterServer.RedirectedClientPeer.
|
inlineprotectedvirtual |
Invoked if incoming data was received for the peer.
| data | An array of type Byte containing the received data. |
| sendParameters | A SendParameters instance specifying how the data was send. |
Can be overridden in a derived class to implement a custom request handling. The default implementation tries to parse the data as an OperationRequest and invokes the OnOperationRequest method of this instance.
Reimplemented in Photon.SocketServer.ServerToServer.S2SPeerBase.
|
inlineprotectedvirtual |
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.
|
inlineprotectedvirtual |
This method is called if incoming data has an unexpected format. Per default this method disconnects the client. Override to change this behavior.
| data | The received data. |
| debugMessage | A debug message that specifies why the data was unexpected. |
|
inlineprotectedvirtual |
Sends bytes to the client.
| data | The data. |
| sendParameters | The send Options. |
|
inline |
Sends an IEventData object to the client.
| eventData | The event data. |
| sendParameters | The send Options. |
|
inline |
|
inline |
Sends the operation response to the client.
| operationResponse | The operation response. |
| sendParameters | The send Options. |
|
inline |
|
inline |
Sets private custom type cache. It is supposed to be used together with plugins. In other case Proptocol.TryRegisterCustomType should be used
| cache |
|
inline |
|
inlineprotected |
|
get |
Gets a value indicating whether this PeerBase instance is connected.
true if connected; otherwise, false.
|
get |
Gets the connection id.
Peers connected to different ports may have similar connection ids.
|
getset |
Gets the ConnectionState for this instance.
|
get |
Gets a value indicating whether the peer was disposed.
The peer is automatically disposed after OnDisconnect.
|
get |
If true the client is beeing bridged (DNS64+NAT64), also SourceUsingIPv6.
|
get |
Gets the IP the client connects to.
|
get |
Gets the IP Address the client connects to.
|
get |
If true connection is using a server IPv6 endpoint.
|
get |
Gets the port the client connects to.
|
get |
Gets the network protocol type used by the peer.
The network protocol type.
|
getprotected set |
|
getset |
Gets the used IRpcProtocol protocol.
|
get |
Gets the client's remote IP address.
|
get |
Gets the client's remote IP address.
|
get |
Gets the port the client connects from.
|
get |
Gets fiber for incoming messages.
|
getprotected set |
Gets the last round trip time for this peer.
This property is updated after each incoming request from the client. Only set for ENet / UDP peers, not for TCP peers.
|
getprotected set |
Gets the last round trip time variance for this peer.
This property is updated after each incoming request from the client. Only set for ENet / UDP peers, not for TCP peers.
|
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.