Photon Unity Networking 2 2.45

Classes | Typedefs | Enumerations
Photon.Realtime Namespace Reference

Classes

class  ActorProperties
 Class for constants. These (byte) values define "well known" properties for an Actor / Player. More...
 
class  AppSettings
 Settings for Photon application(s) and the server to connect to. More...
 
class  AuthenticationValues
 Container for user authentication in Photon. Set AuthValues before you connect - all else is handled. More...
 
class  ConnectionCallbacksContainer
 Container type for callbacks defined by IConnectionCallbacks. See LoadBalancingCallbackTargets. More...
 
class  ConnectionHandler
 
class  EnterRoomParams
 Parameters for creating rooms. More...
 
class  ErrorCode
 ErrorCode defines the default codes associated with Photon client/server communication. More...
 
class  ErrorInfo
 Class wrapping the received EventCode.ErrorInfo event. More...
 
class  ErrorInfoCallbacksContainer
 Container type for callbacks defined by IErrorInfoCallback. See LoadBalancingClient.ErrorInfoCallbackTargets.
 
class  EventCode
 Class for constants. These values are for events defined by Photon LoadBalancing. More...
 
class  Extensions
 This static class defines some useful extension methods for several existing classes (e.g. Vector3, float and others). More...
 
class  FindFriendsOptions
 Options for OpFindFriends can be combined to filter which rooms of friends are returned. More...
 
class  FriendInfo
 Used to store info about a friend's online state and in which room he/she is. More...
 
class  GamePropertyKey
 Class for constants. These (byte) values are for "well known" room/game properties used in Photon LoadBalancing. More...
 
interface  IConnectionCallbacks
 Collection of "organizational" callbacks for the Realtime Api to cover: Connection and Regions. More...
 
interface  IErrorInfoCallback
 Interface for EventCode.ErrorInfo event callback for the Realtime Api. More...
 
interface  IInRoomCallbacks
 Collection of "in room" callbacks for the Realtime Api to cover: Players entering or leaving, property updates and Master Client switching. More...
 
interface  ILobbyCallbacks
 Collection of "organizational" callbacks for the Realtime Api to cover the Lobby. More...
 
interface  IMatchmakingCallbacks
 Collection of "organizational" callbacks for the Realtime Api to cover Matchmaking. More...
 
class  InRoomCallbacksContainer
 Container type for callbacks defined by IInRoomCallbacks. See InRoomCallbackTargets.
 
interface  IOnEventCallback
 Event callback for the Realtime Api. Covers events from the server and those sent by clients via OpRaiseEvent. More...
 
interface  IWebRpcCallback
 Interface for "WebRpc" callbacks for the Realtime Api. Currently includes only responses for Web RPCs. More...
 
class  LoadBalancingClient
 This class implements the Photon LoadBalancing workflow by using a LoadBalancingPeer. It keeps a state and will automatically execute transitions between the Master and Game Servers. More...
 
class  LoadBalancingPeer
 A LoadBalancingPeer provides the operations and enum definitions needed to use the LoadBalancing server application which is also used in Photon Cloud. More...
 
class  LobbyCallbacksContainer
 Container type for callbacks defined by ILobbyCallbacks. See LobbyCallbackTargets.
 
class  MatchMakingCallbacksContainer
 Container type for callbacks defined by IMatchmakingCallbacks. See MatchMakingCallbackTargets. More...
 
class  OperationCode
 Class for constants. Contains operation codes. More...
 
class  OpJoinRandomRoomParams
 Parameters for the matchmaking of JoinRandomRoom and JoinRandomOrCreateRoom. More...
 
class  ParameterCode
 Class for constants. Codes for parameters of Operations and Events. More...
 
class  PhotonAppSettings
 Collection of connection-relevant settings, used internally by PhotonNetwork.ConnectUsingSettings. More...
 
class  PhotonPing
 Abstract implementation of PhotonPing, ase for pinging servers to find the "Best Region". More...
 
struct  PhotonPortDefinition
 Container for port definitions. More...
 
class  PingMono
 Uses C# Socket class from System.Net.Sockets (as Unity usually does). More...
 
class  Player
 Summarizes a "player" within a room, identified (in that room) by ID (or "actorNumber"). More...
 
class  RaiseEventOptions
 Aggregates several less-often used options for operation RaiseEvent. See field descriptions for usage details. More...
 
class  Region
 
class  RegionHandler
 Provides methods to work with Photon's regions (Photon Cloud) and can be use to find the one with best ping. More...
 
class  RegionPinger
 Wraps the ping attempts and workflow for a single region. More...
 
class  Room
 This class represents a room a client joins/joined. More...
 
class  RoomInfo
 A simplified room with just the info required to list and join, used for the room listing in the lobby. The properties are not settable (IsOpen, MaxPlayers, etc). More...
 
class  RoomOptions
 Wraps up common room properties needed when you create rooms. Read the individual entries for more details. More...
 
class  SupportLogger
 Helper class to debug log basic information about Photon client and vital traffic statistics. More...
 
class  SystemConnectionSummary
 The SystemConnectionSummary (SBS) is useful to analyze low level connection issues in Unity. This requires a ConnectionHandler in the scene. More...
 
class  TypedLobby
 Refers to a specific lobby on the server. More...
 
class  TypedLobbyInfo
 Info for a lobby on the server. Used when LoadBalancingClient.EnableLobbyStatistics is true. More...
 
class  WebFlags
 Optional flags to be used in Photon client SDKs with Op RaiseEvent and Op SetProperties. Introduced mainly for webhooks 1.2 to control behavior of forwarded HTTP requests. More...
 
class  WebRpcCallbacksContainer
 Container type for callbacks defined by IWebRpcCallback. See WebRpcCallbackTargets.
 
class  WebRpcResponse
 Reads an operation response of a WebRpc and provides convenient access to most common values. More...
 

Typedefs

using SupportClass = ExitGames.Client.Photon.SupportClass
 
using Stopwatch = System.Diagnostics.Stopwatch
 

Enumerations

enum  ClientState
 State values for a client, which handles switching Photon server types, some operations, etc. More...
 
enum  DisconnectCause
 Enumeration of causes for Disconnects (used in LoadBalancingClient.DisconnectedCause). More...
 
enum  ServerConnection
 Available server (types) for internally used field: server. More...
 
enum  ClientAppType
 Defines which sort of app the LoadBalancingClient is used for: Realtime or Voice. More...
 
enum  EncryptionMode
 Defines how the communication gets encrypted. More...
 
enum  JoinMode : byte
 Defines possible values for OpJoinRoom and OpJoinOrCreate. It tells the server if the room can be only be joined normally, created implicitly or found on a web-service for Turnbased games. More...
 
enum  MatchmakingMode : byte
 Options for matchmaking rules for OpJoinRandom. More...
 
enum  ReceiverGroup : byte
 Lite - OpRaiseEvent lets you chose which actors in the room should receive events. By default, events are sent to "Others" but you can overrule this. More...
 
enum  EventCaching : byte
 Lite - OpRaiseEvent allows you to cache events and automatically send them to joining players in a room. Events are cached per event code and player: Event 100 (example!) can be stored once per player. Cached events can be modified, replaced and removed. More...
 
enum  PropertyTypeFlag : byte
 Flags for "types of properties", being used as filter in OpGetProperties. More...
 
enum  LobbyType : byte
 Types of lobbies define their behaviour and capabilities. Check each value for details. More...
 
enum  AuthModeOption
 Options for authentication modes. From "classic" auth on each server to AuthOnce (on NameServer). More...
 
enum  CustomAuthenticationType : byte
 Options for optional "Custom Authentication" services used with Photon. Used by OpAuthenticate after connecting to Photon. More...
 

Enumeration Type Documentation

◆ AuthModeOption

enum AuthModeOption
strong

Options for authentication modes. From "classic" auth on each server to AuthOnce (on NameServer).

◆ ClientAppType

enum ClientAppType
strong

Defines which sort of app the LoadBalancingClient is used for: Realtime or Voice.

Enumerator
Realtime 

Realtime apps are for gaming / interaction. Also used by PUN 2.

Voice 

Voice apps stream audio.

Fusion 

Fusion clients are for matchmaking and relay in Photon Fusion.

◆ CustomAuthenticationType

enum CustomAuthenticationType : byte
strong

Options for optional "Custom Authentication" services used with Photon. Used by OpAuthenticate after connecting to Photon.

Enumerator
Custom 

Use a custom authentication service. Currently the only implemented option.

Steam 

Authenticates users by their Steam Account. Set Steam's ticket as "ticket" via AddAuthParameter().

Facebook 

Authenticates users by their Facebook Account. Set Facebooks's tocken as "token" via AddAuthParameter().

Oculus 

Authenticates users by their Oculus Account and token. Set Oculus' userid as "userid" and nonce as "nonce" via AddAuthParameter().

PlayStation4 

Authenticates users by their PSN Account and token on PS4. Set token as "token", env as "env" and userName as "userName" via AddAuthParameter().

Xbox 

Authenticates users by their Xbox Account. Pass the XSTS token via SetAuthPostData().

Viveport 

Authenticates users by their HTC Viveport Account. Set userToken as "userToken" via AddAuthParameter().

NintendoSwitch 

Authenticates users by their NSA ID. Set token as "token" and appversion as "appversion" via AddAuthParameter(). The appversion is optional.

PlayStation5 

Authenticates users by their PSN Account and token on PS5. Set token as "token", env as "env" and userName as "userName" via AddAuthParameter().

Epic 

Authenticates users with Epic Online Services (EOS). Set token as "token" and ownershipToken as "ownershipToken" via AddAuthParameter(). The ownershipToken is optional.

FacebookGaming 

Authenticates users with Facebook Gaming api. Set token as "token" via AddAuthParameter().

None 

Disables custom authentication. Same as not providing any AuthenticationValues for connect (more precisely for: OpAuthenticate).

◆ DisconnectCause

enum DisconnectCause
strong

Enumeration of causes for Disconnects (used in LoadBalancingClient.DisconnectedCause).

Read the individual descriptions to find out what to do about this type of disconnect.

Enumerator
None 

No error was tracked.

ExceptionOnConnect 

OnStatusChanged: The server is not available or the address is wrong. Make sure the port is provided and the server is up.

DnsExceptionOnConnect 

OnStatusChanged: Dns resolution for a hostname failed. The exception for this is being caught and logged with error level.

ServerAddressInvalid 

OnStatusChanged: The server address was parsed as IPv4 illegally. An illegal address would be e.g. 192.168.1.300. IPAddress.TryParse() will let this pass but our check won't.

Exception 

OnStatusChanged: Some internal exception caused the socket code to fail. This may happen if you attempt to connect locally but the server is not available. In doubt: Contact Exit Games.

SendException 

Send exception.

ReceiveException 

Receive exception.

ServerTimeout 

OnStatusChanged: The server disconnected this client due to timing out (missing acknowledgement from the client).

ClientTimeout 

OnStatusChanged: This client detected that the server's responses are not received in due time.

DisconnectByServerLogic 

OnStatusChanged: The server disconnected this client from within the room's logic (the C# code).

DisconnectByServerReasonUnknown 

OnStatusChanged: The server disconnected this client for unknown reasons.

InvalidAuthentication 

OnOperationResponse: Authenticate in the Photon Cloud with invalid AppId. Update your subscription or contact Exit Games.

CustomAuthenticationFailed 

OnOperationResponse: Authenticate in the Photon Cloud with invalid client values or custom authentication setup in Cloud Dashboard.

AuthenticationTicketExpired 

The authentication ticket should provide access to any Photon Cloud server without doing another authentication-service call. However, the ticket expired.

MaxCcuReached 

OnOperationResponse: Authenticate (temporarily) failed when using a Photon Cloud subscription without CCU Burst. Update your subscription.

InvalidRegion 

OnOperationResponse: Authenticate when the app's Photon Cloud subscription is locked to some (other) region(s). Update your subscription or master server address.

OperationNotAllowedInCurrentState 

OnOperationResponse: Operation that's (currently) not available for this client (not authorized usually). Only tracked for op Authenticate.

DisconnectByClientLogic 

OnStatusChanged: The client disconnected from within the logic (the C# code).

DisconnectByOperationLimit 

The client called an operation too frequently and got disconnected due to hitting the OperationLimit. This triggers a client-side disconnect, too.

To protect the server, some operations have a limit. When an OperationResponse fails with ErrorCode.OperationLimitReached, the client disconnects.

DisconnectByDisconnectMessage 

The client received a "Disconnect Message" from the server. Check the debug logs for details.

ApplicationQuit 

Used in case the application quits. Can be useful to not load new scenes or re-connect in OnDisconnected.

ConnectionHandler.OnDisable() will use this, if the Unity engine already called OnApplicationQuit (ConnectionHandler.AppQuits = true).

◆ EncryptionMode

enum EncryptionMode
strong

Defines how the communication gets encrypted.

Enumerator
PayloadEncryption 

This is the default encryption mode: Messages get encrypted only on demand (when you send operations with the "encrypt" parameter set to true).

DatagramEncryptionGCM 

Datagram Encryption with GCM.

DatagramEncryptionGCMRandomSequence = 12,

◆ EventCaching

enum EventCaching : byte
strong

Lite - OpRaiseEvent allows you to cache events and automatically send them to joining players in a room. Events are cached per event code and player: Event 100 (example!) can be stored once per player. Cached events can be modified, replaced and removed.

Caching works only combination with ReceiverGroup options Others and All.

Enumerator
DoNotCache 

Default value (not sent).

MergeCache 

Will merge this event's keys with those already cached.

ReplaceCache 

Replaces the event cache for this eventCode with this event's content.

RemoveCache 

Removes this event (by eventCode) from the cache.

AddToRoomCache 

Adds an event to the room's cache

AddToRoomCacheGlobal 

Adds this event to the cache for actor 0 (becoming a "globally owned" event in the cache).

RemoveFromRoomCache 

Remove fitting event from the room's cache.

RemoveFromRoomCacheForActorsLeft 

Removes events of players who already left the room (cleaning up).

SliceIncreaseIndex 

Increase the index of the sliced cache.

SliceSetIndex 

Set the index of the sliced cache. You must set RaiseEventOptions.CacheSliceIndex for this.

SlicePurgeIndex 

Purge cache slice with index. Exactly one slice is removed from cache. You must set RaiseEventOptions.CacheSliceIndex for this.

SlicePurgeUpToIndex 

Purge cache slices with specified index and anything lower than that. You must set RaiseEventOptions.CacheSliceIndex for this.

◆ JoinMode

enum JoinMode : byte
strong

Defines possible values for OpJoinRoom and OpJoinOrCreate. It tells the server if the room can be only be joined normally, created implicitly or found on a web-service for Turnbased games.

These values are not directly used by a game but implicitly set.

Enumerator
Default 

Regular join. The room must exist.

CreateIfNotExists 

Join or create the room if it's not existing. Used for OpJoinOrCreate for example.

JoinOrRejoin 

The room might be out of memory and should be loaded (if possible) from a Turnbased web-service.

RejoinOnly 

Only re-join will be allowed. If the user is not yet in the room, this will fail.

◆ LobbyType

enum LobbyType : byte
strong

Types of lobbies define their behaviour and capabilities. Check each value for details.

Values of this enum must be matched by the server.

Enumerator
Default 

Standard type and behaviour: While joined to this lobby clients get room-lists and JoinRandomRoom can use a simple filter to match properties (perfectly).

SqlLobby 

This lobby type lists rooms like Default but JoinRandom has a parameter for SQL-like "where" clauses for filtering. This allows bigger, less, or and and combinations.

AsyncRandomLobby 

This lobby does not send lists of games. It is only used for OpJoinRandomRoom. It keeps rooms available for a while when there are only inactive users left.

◆ MatchmakingMode

enum MatchmakingMode : byte
strong

Options for matchmaking rules for OpJoinRandom.

Enumerator
FillRoom 

Fills up rooms (oldest first) to get players together as fast as possible. Default.

Makes most sense with MaxPlayers > 0 and games that can only start with more players.

SerialMatching 

Distributes players across available rooms sequentially but takes filter into account. Without filter, rooms get players evenly distributed.

RandomMatching 

Joins a (fully) random room. Expected properties must match but aside from this, any available room might be selected.

◆ PropertyTypeFlag

enum PropertyTypeFlag : byte
strong

Flags for "types of properties", being used as filter in OpGetProperties.

Enumerator
None 

(0x00) Flag type for no property type.

Game 

(0x01) Flag type for game-attached properties.

Actor 

(0x02) Flag type for actor related propeties.

GameAndActor 

(0x01) Flag type for game AND actor properties. Equal to 'Game'

◆ ReceiverGroup

enum ReceiverGroup : byte
strong

Lite - OpRaiseEvent lets you chose which actors in the room should receive events. By default, events are sent to "Others" but you can overrule this.

Enumerator
Others 

Default value (not sent). Anyone else gets my event.

All 

Everyone in the current room (including this peer) will get this event.

MasterClient 

The server sends this event only to the actor with the lowest actorNumber.

The "master client" does not have special rights but is the one who is in this room the longest time.

◆ ServerConnection

enum ServerConnection
strong

Available server (types) for internally used field: server.

Photon uses 3 different roles of servers: Name Server, Master Server and Game Server.

Enumerator
MasterServer 

This server is where matchmaking gets done and where clients can get lists of rooms in lobbies.

GameServer 

This server handles a number of rooms to execute and relay the messages between players (in a room).

NameServer 

This server is used initially to get the address (IP) of a Master Server for a specific region. Not used for Photon OnPremise (self hosted).