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.