docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Interface IHostSession

    A host's mutable handle on a session.

    Inherited Members
    ISession.Changed
    ISession.StateChanged
    ISession.PlayerJoined
    ISession.PlayerLeft
    ISession.PlayerLeaving
    ISession.PlayerHasLeft
    ISession.SessionPropertiesChanged
    ISession.PlayerPropertiesChanged
    ISession.RemovedFromSession
    ISession.Deleted
    ISession.SessionHostChanged
    ISession.SessionMigrated
    ISession.Type
    ISession.Id
    ISession.Code
    ISession.IsHost
    ISession.IsServer
    ISession.HasPassword
    ISession.AvailableSlots
    ISession.MaxPlayers
    ISession.PlayerCount
    ISession.Properties
    ISession.State
    ISession.CurrentPlayer
    ISession.IsMember
    ISession.ConcurrencyControlEnabled
    ISession.SaveCurrentPlayerDataAsync()
    ISession.LeaveAsync()
    ISession.RefreshAsync()
    ISession.ReconnectAsync()
    ISession.AsHost()
    ISession.HasPlayer(string)
    Namespace: Unity.Services.Multiplayer
    Assembly: Unity.Services.Multiplayer.dll
    Syntax
    public interface IHostSession : ISession

    Properties

    Host

    Session host player ID.

    Declaration
    string Host { get; set; }
    Property Value
    Type Description
    string
    Remarks

    Can be changed to the ID of any player that is already a member of the session. Host migration is NOT supported on Multiplay Game Server Hosting server builds.

    Exceptions
    Type Condition
    SessionException

    Thrown when attempting to change the value on a Multiplay Game Server Hosting server build. The Error property will be set to InvalidPlatformOperation.

    See Also
    AsHost()

    IsLocked

    Whether the session is locked

    Declaration
    bool IsLocked { get; set; }
    Property Value
    Type Description
    bool
    See Also
    AsHost()

    IsPrivate

    Whether the session is private

    Declaration
    bool IsPrivate { get; set; }
    Property Value
    Type Description
    bool
    See Also
    AsHost()

    Name

    The Name of the session.

    Declaration
    string Name { get; set; }
    Property Value
    Type Description
    string
    See Also
    AsHost()

    Network

    Retrieve the host network handle

    Declaration
    IHostSessionNetwork Network { get; }
    Property Value
    Type Description
    IHostSessionNetwork
    See Also
    AsHost()

    Password

    The password used to connect to the Session.

    Declaration
    string Password { set; }
    Property Value
    Type Description
    string
    See Also
    AsHost()

    Players

    The list of players in the session

    Declaration
    IReadOnlyList<IPlayer> Players { get; }
    Property Value
    Type Description
    IReadOnlyList<IPlayer>
    See Also
    AsHost()

    Methods

    DeleteAsync()

    Delete the session.

    Declaration
    Task DeleteAsync()
    Returns
    Type Description
    Task

    A Task representing the asynchronous operation.

    See Also
    AsHost()

    GetHostMigrationDataAsync(TimeSpan)

    Get the host migration data from the session.

    Declaration
    Task<SessionMigrationData> GetHostMigrationDataAsync(TimeSpan timeout)
    Parameters
    Type Name Description
    TimeSpan timeout

    The timeout for the request.

    Returns
    Type Description
    Task<SessionMigrationData>

    Task for SessionMigrationData. SessionMigrationData null if not present./>

    Remarks

    This task is not cancellable; use timeout parameter to limit execution time.

    Exceptions
    Type Condition
    SessionException

    Thrown when a session related error occurs. The Error property reflects the error. Possible errors include:
    MigrationDataRequestTimeout
    NotAuthorized
    NotInLobby
    RateLimitExceeded
    SessionNotFound
    Unknown

    See Also
    AsHost()

    GetPlayer(string)

    Retrieves information about a session member player by their playerId.

    Declaration
    IPlayer GetPlayer(string playerId)
    Parameters
    Type Name Description
    string playerId

    The ID of the player to retrieve.

    Returns
    Type Description
    IPlayer

    The IPlayer instance if found; otherwise, null.

    See Also
    GetPlayer(string)

    RemovePlayerAsync(string)

    Removes a player from the session.

    Declaration
    Task RemovePlayerAsync(string playerId)
    Parameters
    Type Name Description
    string playerId

    Identifier for the player to remove.

    Returns
    Type Description
    Task

    A task for the operation.

    See Also
    AsHost()

    SavePlayerDataAsync(string)

    Save the properties of a player.

    Declaration
    Task SavePlayerDataAsync(string playerId)
    Parameters
    Type Name Description
    string playerId

    The ID of the player whose data will be saved.

    Returns
    Type Description
    Task

    A Task representing the asynchronous operation.

    Exceptions
    Type Condition
    SessionException

    Thrown when the player is not found. The Error property will be set to InvalidOperation.

    See Also
    SetProperty(string, PlayerProperty)
    SetProperties(Dictionary<string, PlayerProperty>)

    SavePropertiesAsync()

    Saves the properties of the session.

    Declaration
    Task SavePropertiesAsync()
    Returns
    Type Description
    Task

    A Task for the operation.

    See Also
    SetProperty(string, SessionProperty)
    SetProperties(Dictionary<string, SessionProperty>)

    SetHostMigrationDataAsync(byte[], TimeSpan)

    Set the host migration data on the session.

    Declaration
    Task SetHostMigrationDataAsync(byte[] data, TimeSpan timeout)
    Parameters
    Type Name Description
    byte[] data

    The host migration data byte array to set.

    TimeSpan timeout

    The timeout for the request.

    Returns
    Type Description
    Task

    A task for the operation.

    Remarks

    This task is not cancellable; use timeout parameter to limit execution time.

    Exceptions
    Type Condition
    SessionException

    Thrown when a session related error occurs. The Error property reflect the error. Possible errors include:
    MigrationDataRequestTimeout
    NotAuthorized
    NotInLobby
    RateLimitExceeded
    SessionNotFound
    Unknown

    ArgumentOutOfRangeException

    Thrown when the data to set exceeds the maximum migration data size limit returned by the server.

    See Also
    AsHost()

    SetProperties(Dictionary<string, SessionProperty>)

    Set properties.

    Declaration
    void SetProperties(Dictionary<string, SessionProperty> properties)
    Parameters
    Type Name Description
    Dictionary<string, SessionProperty> properties

    The properties to be set on the session.

    See Also
    SetProperty(string, SessionProperty)

    SetProperty(string, SessionProperty)

    Set a SessionProperty.

    Declaration
    void SetProperty(string key, SessionProperty property)
    Parameters
    Type Name Description
    string key

    The property's key to bet set on the session.

    SessionProperty property

    The property's value.

    Remarks

    To remove an existing property, pass null to the property argument.
    To set the value of the property to null, pass a SessionProperty with its Value set to null.

    Examples

    To add a colour property

    var redColourProperty = new SessionProperty("red", VisibilityOptions.Public);
        myHostSession.SetProperty("colour", redColourProperty);
        await myHostSession.SavePropertiesAsync();

    To update the colour property to null

    var nullSessionProperty = new SessionProperty(null, VisibilityOptions.Public);
        myHostSession.SetProperty("colour", nullSessionProperty);
        await myHostSession.SavePropertiesAsync();

    To remove the colour property

    myHostSession.SetProperty("colour", null);
        await myHostSession.SavePropertiesAsync();
    See Also
    AsHost()

    Extension Methods

    MatchmakerExtensions.GetMatchmakingResults(ISession)

    See Also

    AsHost()
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)