Fusion.Sockets
Represents a Network Address, which includes a IP and Port
This can contains either a IPv4 or a IPv6 address
Retrieves the Remote Actor ID which this Represents
Signal if the is a Relayed connection
Signal if the represents an IPv6 Address
Signal if this is not default/empty
Create a new NetAddress on the LocalHost address with the desired Port
Port used to build the NetAddress
New NetAddress reference
Create a new on the LocalHost IPv6 Address with the desired Port
Port used to build the NetAddress
New NetAddress reference
Create a new NetAddress using the "Any" IPv4 Address representation (0.0.0.0)
with the Port passed as argument
Port used to build the NetAddress
New NetAddress reference
Create a new NetAddress using the "Any" IPv6 Address representation (::)
with the Port passed as argument
Port used to build the NetAddress
New NetAddress reference
Create a new NetAddress based on the IP and Port passed as argument
String representation of an IP, either IPv4 or IPv6
Port used to build the NetAddress
New NetAddress reference
IPv4 Subnet Mask Utilities
List of IPv4 Subnet Masks
Check if two IPv4 seems to be in the same Subnet.
The addresses are checked against all subnet masks in .
EndPoint A
EndPoint B
True if both addresses seems to be in the same subnet
Extracts the Network Address of an IPv4 EndPoint based on a particular Subnet Mask
EndPoint
Subnet Mask
Network Address based on the Subnet Mask
Build and alloc a based on the number of packets
it need to keep track and the size of each packets.
Number of blocks to allocate
Size of each block
Reference to a
Release the that is part of this Block and
mark it as available again by including it on the list of buffers
Tries to get a valid reference from the Buffer block
A valid NetBitBuffer reference if it can be retrieved from this block, null otherwise
Creates a new empty
NetBitBuffer reference
Tries to get a valid reference from the Buffer block
Reference to a NetBitBuffer
True if a valid NetBitBuffer reference can be retrieved from this block, false otherwise
Represents a linked list of
Add a at the beginning of the List
NetBitBuffer to add to the list
Add a at the end of the list.
NetBitBuffer to add to the list
Removes the first element of the list
NetBitBuffer reference
Remove a specific from the list
NetBitBuffer to remove
Check if a specific is in the list
NetBitBuffer to check
True if the list contains the item, false otherwise
Describe the Type of a Command Packet
Network Command Header
Describe its type and usual settings for all commands
Create a new NetCommandHeader based on a type
Type of Command that should be created
New NetCommandHeader reference based on the Command Type
Connect Command used to signal a remote server that a client is trying to connect to it
Accepted Command, sent by the server when a remote client connection is accepted
Refuse Command, sent by the server when the connection was refused.
This happens when the server has reached its max connection capacity.
Disconnect Command, it can be used by either side of the connection
General configuration used to drive the behavior of the Socket library
Pre-allocated number of data buffers used to send data
Number of Connection Groups supported by the local instance
Max Number of Connections supported by the local instance
Max number of Connection per Group based on the and
Size of the internal Socket send buffer
Size of the internal Socket receive buffer
default Maximum Transmission Unit
UDP Packet Size in Bytes
UDP Packet Size in Bits based on
Number of Connection Attempts tried by the peer before cancel the connection
Interval in Seconds between attempts to connect to a remote server
Max Allowed time for the Send and Receive operations, in milliseconds
Initial RTT
Connection Timeout in seconds
Interval in Seconds between ping being sent to a remote end
Timeout in Seconds to allow a disconnected Connection to be released from the Group Mapping
Network Address used to bind the internal Socket
Package acknowledgment system configuration
Network simulation system configuration
Builds a with the default values
Disconnect Reason Flag
Describe the type of a Networked Packet
IPv6 header: 40 bytes, UDP header: 8 bytes, Realtime Header: 96 bytes
MinimumTransferUnit bytes.
MinimumTransferUnit bits.
MaximumTransferUnit bytes.
MaximumTransferUnit bits. (ipv6 header: 40 bytes, udp header: 8 bytes)
if from is LARGER than to, result is positive
if from is LESSER than to, result is negative
if they are the same, result is zero
Random ID of this socket
Reference to Current Communicator
Local Peer Address is based on the current Player Actor Number inside the Room
Specifies UDP network type.
Invalid NAT Type
UDP is always blocked.
No NAT, public IP, no firewall.
A full cone NAT is one where all requests from the same internal IP address and port are
mapped to the same external IP address and port. Furthermore, any external host can send
a packet to the internal host, by sending a packet to the mapped external address.
A symmetric NAT is one where all requests from the same internal IP address and port,
to a specific destination IP address and port, are mapped to the same external IP address and
port. If the same host sends a packet with the same source address and port, but to
a different destination, a different mapping is used. Furthermore, only the external host that
receives a packet can send a UDP packet back to the internal host.
This class implements STUN Client. Defined in RFC 8489
Session Traversal Utilities for NAT (STUN)
Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT(STUN)
Happy Eyeballs Version 2: Better Connectivity Using Concurrency
State of Peer-to-Peer (P2P) Communication across Network Address Translators(NATs)
List of public DNS Servers
Run a STUN Binding Request against the Public STUN Server in order to discover peer reflexive addresses
Network Peer reference
Network Socket reference
Running Task of the STUN Query Procedure
Retrieve the Local IP Endpoint currently active
This class implements STUN ERROR-CODE. Defined in RFC RFC 5389 15.6
Gets or sets error code.
Gets reason text.
Default constructor.
Error code.
Reason text.
Implements STUN message. Defined in RFC 3489.
STUN Message Type
STUN Attribute Type
Global Stun Related defined values
IP Address Family
STUN Message Type
STUN Transaction ID
Gets transaction ID.
Gets or sets IP end point what was actually connected to STUN server. Returns null if not specified.
Gets or sets user name. Value null means not specified.
Gets or sets error info. Returns null if not specified.
Default constructor.
Parses STUN message from raw data packet.
Raw STUN message.
Converts this to raw STUN packet.
Returns raw STUN packet.
Parses attribute from data.
SIP message data.
Offset in data.
Pasrses IP endpoint attribute.
STUN message data.
Offset in data.
Returns parsed IP end point.
Stores ip end point attribute to buffer.
Attribute type.
IP end point.
Buffer where to store.
Offset in buffer.
This class holds the result of a STUN Query
Current NAT Type of the peer
Signal if Result is valid
Gets public IP end point.
Gets private IP end point.
Invalid StunResult Reference
Default constructor.
Specifies UDP network type.
Public IP end point.
List of public STUN Servers
Total size in BITS of the buffer
Current read/write position in BITS inside the Buffer
Size of written buffer in BYTES
Ammount of bytes required considering the total of written bytes
Total Size in BYTES of the Buffer
Signal if the buffer was completely written
Signal if the buffer is overflowing
Signal if the Buffer is in Write Mode
Signal if the Buffer is in Read Mode
Internal Byte Array
Handles Protocol Msgs sent by the Fusion Plugin
It converts the byte buffer into usable Protocol Msgs
Sender Actor of the Protocol Msg, generally the Plugin
Object that stores the buffer to be converted
Convert the Data object into a usable Byte Buffer.
How the conversion happens depends on the the Type of Communicator
Base Protocol Message.
This concentrates the basics for serialization and cloning
Max Lenght of the Custom Data
Stores the Current Protocol Message version
Stores the Current Fusion Serialization Version
Represents an Invalid Version
Custom data send along side any Protocol Message
Creates a copy of this Message
Created a new Message with a certain version
Protocol Message Version
Serialize this Message into or from a .
Buffer to read from or write into the data of the Message
Used by the specialized versions of Message to serialize its data
Buffer to read from or write into the data of the Message
Check if this Message is compatible with target versions
Target Protocol Message Version
Target Fusion Serialization Version
Enable the Serialization Version Check
True if message is compatible with versions
Disconnect Protocol Message.
Used to signal a peer that it will be disconnected from Photon Cloud
Disconnect Reason
Disconnect Protocol Message
Disconnect Protocol Message
Disconnect Reason
List all Disconnect reason used by the Plugin to remove an Actor from the Room
Abstract disconnect reason
Used when an event with other code other then the treated ones is received by the plugin
When the Join Message is not of the Request Type
When the Join Message does not contain a valid Game Mode
When any of the major settings of a message does not align with the current settings,
like GameMode, Protocol Version, Serialization Version and Peer Mode
When there is already a Server running on the current Room
Local Peer Mode
message Type
Sent by Peer to Request to Join on the Plugin
Sent by the Plugin to confirm the Join of a Peer
Type of Peer which the Peer is starting as
No Mode Selected, means Invalid
Server Mode
Client Mode
Join Requests sent by the Plugin to request data from the Peer
No request in the Join Message
Request the Network Config
Request for Reflexive Information
Request to Disable NAT Punch
Join Message
It is used to join a Fusion Room Session with extra information about the Peer.
This is unrelated to the Join Operation into a Photon Room.
Join Message Type
Requested Plugin Game Mode
Local Peer Mode
Requests sent from Plugin
Network Config Msg Type
Request Network Config
Response to a Request
Override Signal for the Network Config
NetworkConfig Protocol Msgs
It is used to serialize the Fusion NetworkConfig and send to Photon Cloud Plugin
Network Config Type
JSON Serialized NetworkConfig
Reflexive Info Msgs
Used to transport information about the Reflexive Addresses of a Peer
Actor ID to which this info is related
Peer Public Address
Peer Private Address
Peer NAT Type
Signal if this Reflexive Info is Valid or not
Snapshot Message Type
Invalid/Empty Type
Base Snapshot
Confirmation sent by the Plugin
State Snapshot Protocol Msgs
Used to sync the current Server Game State with the Photon Cloud Plugin
in order to perform an eventual Host Migration
Tick to which this Snapshot represents
Last NetworkID from the Server
Snapshot Type
Snapshot Total number of bytes stored or expected to be stored on the Snapshot
Check if the Snapshot has a valid Data based on the expected CRC
True if the Snapshot has a valid data
Get Snapshot internal Data Buffer
Internal Data Buffer
CRC Hash based on the content of the internal data or the expected CRC after all fragments are computed
Actual Snapshot data
Snapshot Total Size
Computes the CRC64 of the current Buffer Data stored on the Snapshot
Merge the received Snapshot data on this own data
Snapshot to be merged
Create a clone with this Snapshot and reset reference
Start Message Requests
No Requests
Peer should connect to Shared Server
Peer should wait for the Server Reflexive Info
Start Protocol Msgs
Used to signal that Fusion Simulation should start
Actor ID of the Remote Server
Start Requests
Defines the Mode the Plugin should run
No Game Mode set
Client Server Game Mode
The Plugin will act just as a relay, exchanging data between the peers.
Shared Game Mode
The Plugin will act as a Fusion Server and will accept remote connections
Photon Event Codes used by the Fusion to communicate with the Photon Cloud
Protocol Event Code
Data Event Code
Zero (0) means: if it should be the room itself (authorative event).
Default CustomData Key of Realtime Events
Protocol Messages Serializer
Serialize a Protocol Message into a BitStream
Protocol Message to be serialized
BitStream containing the Protocol Message
True if the Protocol Message was serialized
Deserialize a Protocol Message from a BitStream
Stream containing a Protocol Message
Deserialized Protocol Message
True if a Protocol Message was deserialized
Invalid Version
Initial Version
Added Support to Fusion Serialization Version
Added Custom Data to all Protocol Messages
Added NAT Type to Reflexive Info
Added Host Migration Support
Always points to the Latest version