Skip to main content
Version: 2.x

Class Room

An ODIN room, which handles the underlying native opaque room handle. This abstraction provides a high-level interface for joining rooms, managing persistent state.

Declaration
public class Room : IRoom, IDisposable

Implements:
OdinNative.Wrapper.IRoom, System.IDisposable

Properties​

Samplerate​

Room default samplerate

Declaration
public uint Samplerate { get; }

Stereo​

Room default stereo flag

Declaration
public bool Stereo { get; }

EndPoint​

Room server gateway endpoint

Declaration
public string EndPoint { get; }

Id​

RoomId

Declaration
public ulong Id { get; }

OwnPeerId​

PeerId of self

Declaration
public uint OwnPeerId { get; }

UserId​

UserId of self

Declaration
public string UserId { get; }

Name​

Room name

Declaration
public string Name { get; }

Customer​

Joining customer

Declaration
public string Customer { get; }

RoomStatus​

RoomStatus

Declaration
public string RoomStatus { get; }

Tags​

Self room tags

Declaration
public IEnumerable<string> Tags { get; }

ReconnectToken​

Latest token for new reconnects

Declaration
public string ReconnectToken { get; }

InitialUserData​

User data of the local peer that is sent together with the join request

Declaration
public string InitialUserData { get; set; }

IsJoined​

IsJoined

Declaration
public bool IsJoined { get; }

IsClosed​

IsClosed

Declaration
public bool IsClosed { get; }

CryptoCipher​

Crypto cipher

Declaration
public Crypto CryptoCipher { get; }

RemotePeers​

Container of room peers

Declaration
public ConcurrentDictionary<uint, PeerEntity> RemotePeers { get; }

Encoders​

Container of room input medias

Declaration
public ConcurrentDictionary<ulong, MediaEncoder> Encoders { get; }

Sockets​

Container of room sockets

Declaration
public ConcurrentDictionary<ulong, Socket> Sockets { get; }

Decoders​

Elements of room output medias

Declaration
public IEnumerable<MediaDecoder> Decoders { get; }

Authentication​

Room joining authentication

Declaration
public string Authentication { get; }

Parent​

Default value null indicates root or not set

Declaration
public object Parent { get; set; }

Self​

The local peer for this client in this room. Null until the room is joined.

Declaration
public IPeer Self { get; }

Methods​

OnDatagramReceived(DatagramEventArgs)​

Declaration
protected void OnDatagramReceived(DatagramEventArgs e)
Parameters​
TypeName
OdinNative.Wrapper.Room.DatagramEventArgse

OnRPCReceived(RpcEventArgs)​

Declaration
protected void OnRPCReceived(RpcEventArgs e)
Parameters​
TypeName
OdinNative.Wrapper.Room.RpcEventArgse

OnSocketReceived(SocketMessageEventArgs)​

Declaration
protected void OnSocketReceived(SocketMessageEventArgs e)
Parameters​
TypeName
OdinNative.Wrapper.Socket.SocketMessageEventArgse

Create(string, uint, bool)​

Initialise independent room

Declaration
public static Room Create(string endPoint, uint samplerate = 48000, bool stereo = false)
Returns​

OdinNative.Wrapper.Room.Room: Room object

Parameters​
TypeNameDescription
System.StringendPointGateway server
System.UInt32sampleratesets default samplerate
System.Booleanstereosets default stereo flag

Room_OnPeerLeft(object, PeerLeftObjectContainer)​

Remove and dispose peer of OdinNative.Wrapper.Room.Room.RemotePeers

Declaration
protected virtual void Room_OnPeerLeft(object sender, PeerLeftObjectContainer args)
Parameters​
TypeName
System.Objectsender
OdinNative.Wrapper.Peer.Rpc.PeerLeftObjectContainerargs

CreateMediaDecoder(uint)​

Add new created decoder to OdinNative.Wrapper.Room.Room.RemotePeers by id returns decoder or null if there is no peer

Declaration
public virtual MediaDecoder CreateMediaDecoder(uint peerId)
Returns​

OdinNative.Wrapper.MediaDecoder

Parameters​
TypeName
System.UInt32peerId

RemoveMediaDecoder(uint, ulong)​

Remove and dispose decoder of OdinNative.Wrapper.Room.Room.RemotePeers by media id

Declaration
public virtual void RemoveMediaDecoder(uint peerId, ulong mediaId)
Parameters​
TypeName
System.UInt32peerId
System.UInt64mediaId

Room_OnPeerChanged(object, PeerChangedObjectContainer)​

Set userdata of OdinNative.Wrapper.Room.Room.RemotePeers by id

Declaration
protected virtual void Room_OnPeerChanged(object sender, PeerChangedObjectContainer args)
Parameters​
TypeName
System.Objectsender
OdinNative.Wrapper.Peer.Rpc.PeerChangedObjectContainerargs

Room_OnMessageReceived(object, uint, byte[])​

Log message in Debug

Declaration
protected virtual void Room_OnMessageReceived(object sender, uint peerId, byte[] message)
Parameters​
TypeName
System.Objectsender
System.UInt32peerId
System.Byte[]message

Room_OnRoomJoined(object, JoinedObjectContainer)​

Set OdinNative.Wrapper.Room.Room.RemotePeers for bookkeeping and AvailableEncoderIds for encoders

Declaration
protected virtual void Room_OnRoomJoined(object sender, JoinedObjectContainer args)
Parameters​
TypeName
System.Objectsender
OdinNative.Wrapper.Room.Rpc.JoinedObjectContainerargs

Room_OnRoomLeft(object, string)​

This close the current room

Declaration
protected virtual void Room_OnRoomLeft(object sender, string reason)
Parameters​
TypeNameDescription
System.Objectsenderroom
System.Stringreasonevent reason

Room_OnRoomStatusChanged(object, string)​

Set the RoomStatus and flag for transition

Declaration
protected virtual void Room_OnRoomStatusChanged(object sender, string connectionStatus)
Parameters​
TypeName
System.Objectsender
System.StringconnectionStatus

Room_OnDatagram(object, DatagramEventArgs)​

Default impl will push a datagram to the OdinNative.Wrapper.MediaDecoders of the sending peer whose OdinNative.Wrapper.MediaDecoder.ListenChannelMask overlaps the datagram's channel mask.

Declaration
public virtual void Room_OnDatagram(object sender, DatagramEventArgs args)
Parameters​
TypeNameDescription
System.ObjectsenderRoom object
OdinNative.Wrapper.Room.DatagramEventArgsargsDatagram event arguments

Room_OnRPC(object, RpcEventArgs)​

Default impl will process all rpc packets.

Declaration
public virtual void Room_OnRPC(object sender, RpcEventArgs args)
Parameters​
TypeNameDescription
System.ObjectsenderRoom object
OdinNative.Wrapper.Room.RpcEventArgsargsRPC event arguments

Room_OnSocket(object, SocketMessageEventArgs)​

Default impl will forward all socket messages.

Declaration
public virtual void Room_OnSocket(object sender, SocketMessageEventArgs args)
Parameters​
TypeNameDescription
System.ObjectsenderRoom object
OdinNative.Wrapper.Socket.SocketMessageEventArgsargsRPC event arguments

ProcessJsonRpc(string)​

Declaration
protected virtual void ProcessJsonRpc(string json)
Parameters​
TypeName
System.Stringjson

Join(string, string, uint, bool, OdinCipherHandle, out Room)​

Create and join a Room

Declaration
public static bool Join(string endPoint, string auth, uint samplerate, bool stereo, OdinCipherHandle cipher, out Room room)
Returns​

System.Boolean: true on successfully request join or false

Parameters​
TypeNameDescription
System.StringendPointGateway server
System.Stringauthjson authentication string
System.UInt32sampleratesets default samplerate
System.Booleanstereosets default stereo flag
OdinNative.Core.Imports.OdinCipherHandlecipheroptional crypto or null
OdinNative.Wrapper.Room.RoomroomInitialized room

Join(string, string, string, uint, bool, OdinCipherHandle, out Room)​

Create and join a Room

Declaration
public static bool Join(string endPoint, string token, string roomName, uint samplerate, bool stereo, OdinCipherHandle cipher, out Room room)
Returns​

System.Boolean: true on successfully request join or false

Parameters​
TypeNameDescription
System.StringendPointGateway server
System.Stringtokenjoin token
System.StringroomNameroom name
System.UInt32sampleratesets default samplerate
System.Booleanstereosets default stereo flag
OdinNative.Core.Imports.OdinCipherHandlecipheroptional crypto or null
OdinNative.Wrapper.Room.RoomroomInitialized room

Join(string, string, OdinCipherHandle)​

Join a room

Declaration
public bool Join(string token, string roomName, OdinCipherHandle cipher = null)
Returns​

System.Boolean: true on successfully request join or false

Parameters​
TypeNameDescription
System.Stringtokentoken for json authentication string
System.StringroomNameroom name for json authentication string
OdinNative.Core.Imports.OdinCipherHandlecipheroptional crypto

Join(string, OdinCipherHandle)​

Join a room

Declaration
public bool Join(string token, OdinCipherHandle cipher = null)
Returns​

System.Boolean: true on successfully request join or false

Parameters​
TypeNameDescription
System.Stringtokentoken for json authentication string
OdinNative.Core.Imports.OdinCipherHandlecipheroptional crypto

Create(string, OdinCipherHandle)​

Join a room with a json authentication string

Declaration
protected bool Create(string authentication, OdinCipherHandle cipher = null)
Returns​

System.Boolean: true on successfully request join or false

Parameters​
TypeNameDescription
System.StringauthenticationJoin token
OdinNative.Core.Imports.OdinCipherHandlecipheroptional crypto cipher handle or null

GetRoomId()​

Retrieves the room id

Declaration
public ulong GetRoomId()
Returns​

System.UInt64: room id

GetRoomName(bool)​

Retrieves the room name

Declaration
public string GetRoomName(bool update = true)
Returns​

System.String: room name

Parameters​
TypeNameDescription
System.Booleanupdateupdate this room name on true

ResendUserData()​

Resend native UserData

Declaration
protected NativeBindings.OdinError ResendUserData()
Returns​

OdinNative.Core.Imports.NativeBindings.OdinError: error code

GetEncoder(ulong, out MediaEncoder)​

Get an encoder from OdinNative.Wrapper.Room.Room.Encoders by id

Declaration
public bool GetEncoder(ulong mediaId, out MediaEncoder encoder)
Returns​

System.Boolean: true on encoder found or false

Parameters​
TypeNameDescription
System.UInt64mediaIdid of an input media
OdinNative.Wrapper.MediaEncoderencoderinput object

GetOrCreateEncoder(out MediaEncoder)​

Get an encoder from OdinNative.Wrapper.Room.Room.Encoders by id. If the encoder is not found create a new one that will be added to OdinNative.Wrapper.Room.Room.Encoders.

Declaration
public bool GetOrCreateEncoder(out MediaEncoder encoder)
Returns​

System.Boolean: true or false on error

Parameters​
TypeNameDescription
OdinNative.Wrapper.MediaEncoderencoderinput object

GetOrCreateEncoder(ulong, out MediaEncoder)​

Get an encoder from OdinNative.Wrapper.Room.Room.Encoders by id. If the encoder is not found create a new one that will be added to OdinNative.Wrapper.Room.Room.Encoders.

Declaration
public bool GetOrCreateEncoder(ulong mediaId, out MediaEncoder encoder)
Returns​

System.Boolean: true or false on error

Parameters​
TypeNameDescription
System.UInt64mediaIdid of an input media
OdinNative.Wrapper.MediaEncoderencoderinput object

GetOrCreateEncoder(ulong, uint, bool, out MediaEncoder)​

Get an encoder from OdinNative.Wrapper.Room.Room.Encoders by id. If the encoder is not found create a new one that will be added to OdinNative.Wrapper.Room.Room.Encoders.

Declaration
public bool GetOrCreateEncoder(ulong mediaId, uint samplerate, bool stereo, out MediaEncoder encoder)
Returns​

System.Boolean: true or false on error

Parameters​
TypeNameDescription
System.UInt64mediaIdid of an input media
System.UInt32sampleratecustom samplerate
System.Booleanstereocustom stereo flag
OdinNative.Wrapper.MediaEncoderencoderinput object

CreateEncoder()​

Create a new input media that will be added to OdinNative.Wrapper.Room.Room.Encoders

Declaration
public MediaEncoder CreateEncoder()
Returns​

OdinNative.Wrapper.MediaEncoder: input media

CreateEncoder(uint, bool, uint)​

Create a new input media that will be added to OdinNative.Wrapper.Room.Room.Encoders

Declaration
public MediaEncoder CreateEncoder(uint samplerate, bool stereo, uint peerId = 0)
Returns​

OdinNative.Wrapper.MediaEncoder: input media

Parameters​
TypeNameDescription
System.UInt32sampleratecustom samplerate
System.Booleanstereocustom stereo flag
System.UInt32peerIdbinding peer id

RemoveEncoder(ulong, out MediaEncoder)​

Removes the input media from OdinNative.Wrapper.Room.Room.Encoders

Declaration
public bool RemoveEncoder(ulong mediaId, out MediaEncoder encoder)
Returns​

System.Boolean: true on encoder found or false

Parameters​
TypeNameDescription
System.UInt64mediaIdid of an input media
OdinNative.Wrapper.MediaEncoderencoderinput media that was removed

GetDecoder(uint, ulong, out MediaDecoder)​

Get a decoder from OdinNative.Wrapper.PeerEntity.Medias of OdinNative.Wrapper.Room.Room.RemotePeers by id

Declaration
public bool GetDecoder(uint peerId, ulong mediaId, out MediaDecoder decoder)
Returns​

System.Boolean: true on decoder found or false

Parameters​
TypeNameDescription
System.UInt32peerIdid of peer
System.UInt64mediaIdid of output media
OdinNative.Wrapper.MediaDecoderdecoderoutput object or null

GetOrCreateDecoder(uint, ulong, out MediaDecoder)​

Get a decoder from OdinNative.Wrapper.PeerEntity.Medias of OdinNative.Wrapper.Room.Room.RemotePeers by id. If the decoder is not found create a new one that will be added to the Peer

Declaration
public bool GetOrCreateDecoder(uint peerId, ulong mediaId, out MediaDecoder decoder)
Returns​

System.Boolean: true on decoder found or false

Parameters​
TypeNameDescription
System.UInt32peerIdid of peer
System.UInt64mediaIdid of output media
OdinNative.Wrapper.MediaDecoderdecoderoutput object or null

GetOrCreateDecoder(uint, ulong, uint, bool, out MediaDecoder)​

Get a decoder from OdinNative.Wrapper.PeerEntity.Medias of OdinNative.Wrapper.Room.Room.RemotePeers by id. If the decoder is not found create a new one that will be added to the Peer

Declaration
public bool GetOrCreateDecoder(uint peerId, ulong mediaId, uint samplerate, bool stereo, out MediaDecoder decoder)
Returns​

System.Boolean: true on decoder found or false

Parameters​
TypeNameDescription
System.UInt32peerIdid of peer
System.UInt64mediaIdid of output media
System.UInt32sampleratecustom samplerate
System.Booleanstereocustom stereo flag
OdinNative.Wrapper.MediaDecoderdecoderoutput object or null

CreateDecoder(uint)​

Create a new output media that will be added to OdinNative.Wrapper.PeerEntity.Medias

Declaration
public MediaDecoder CreateDecoder(uint peerId)
Returns​

OdinNative.Wrapper.MediaDecoder: output media

Parameters​
TypeNameDescription
System.UInt32peerIdid of peer

CreateDecoder(uint, uint, bool)​

Create a new output media that will be added to OdinNative.Wrapper.PeerEntity.Medias

Declaration
public MediaDecoder CreateDecoder(uint peerId, uint samplerate, bool stereo)
Returns​

OdinNative.Wrapper.MediaDecoder: output media

Parameters​
TypeNameDescription
System.UInt32peerIdid of peer
System.UInt32sampleratecustom samplerate
System.Booleanstereocustom stereo flag

RemoveDecoder(uint, ulong, out MediaDecoder)​

Removes an output media from a remote peer.

Declaration
public bool RemoveDecoder(uint peerId, ulong mediaId, out MediaDecoder decoder)
Returns​

System.Boolean: true on decoder found or false

Parameters​
TypeNameDescription
System.UInt32peerIdid of peer
System.UInt64mediaIdid of an output media
OdinNative.Wrapper.MediaDecoderdecoderoutput media that was removed

SetListenChannelMask(ChannelMask)​

Sets the channel mask used when listening to peers that do not have a per-peer override set via OdinNative.Wrapper.Room.Room.SetListenChannelMaskForPeer(System.UInt32,OdinNative.Core.Utility.ChannelMask) . Applies immediately to every currently known peer and is automatically (re-)applied to peers that join afterward.

Declaration
public virtual bool SetListenChannelMask(Utility.ChannelMask mask)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
OdinNative.Core.Utility.ChannelMaskmaskchannel mask to listen to for all peers without an override

SetListenChannelMaskForPeer(uint, ChannelMask)​

Overrides the channel mask used when listening to a specific peer, taking precedence over the default set via OdinNative.Wrapper.Room.Room.SetListenChannelMask(OdinNative.Core.Utility.ChannelMask).

Declaration
public virtual bool SetListenChannelMaskForPeer(uint peerId, Utility.ChannelMask mask)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.UInt32peerIdpeer to override the listen channel mask for
OdinNative.Core.Utility.ChannelMaskmaskchannel mask to listen to for this peer

ClearListenChannelMaskForPeer(uint)​

Removes a previously set per-peer listen channel mask override, falling back to the default set via OdinNative.Wrapper.Room.Room.SetListenChannelMask(OdinNative.Core.Utility.ChannelMask) for that peer.

Declaration
public virtual bool ClearListenChannelMaskForPeer(uint peerId)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.UInt32peerIdpeer to remove the override for

SetChannelMasks(IDictionary<uint, ulong>, bool)​

Sends a "SetChannelMasks" request to the server to control which channels should be received from the specified peers.

Declaration
public virtual bool SetChannelMasks(IDictionary<uint, ulong> masks, bool reset)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.Collections.Generic.IDictionary<System.UInt32,System.UInt64>maskspeer id to channel mask mapping
System.Booleanresetwhen true, replaces the server-side subscription instead of merging into it

UpdateUserData(IUserData)​

Update arbitrary userdata of self (note: OdinNative.Wrapper.UserData)

Declaration
public virtual bool UpdateUserData(IUserData userData)
Returns​

System.Boolean

Parameters​
TypeNameDescription
OdinNative.Wrapper.IUserDatauserDataarbitrary data

UpdateUserData(string)​

Update userdata of self (note: OdinNative.Wrapper.Room.Room.UpdateUserData(OdinNative.Wrapper.IUserData))

Declaration
public virtual bool UpdateUserData(string json)
Returns​

System.Boolean

Parameters​
TypeNameDescription
System.Stringjsonjson data

SendMessage(string)​

Send a "message" rpc to the server to broadcast the message.

Declaration
public virtual bool SendMessage(string message)
Returns​

System.Boolean

Parameters​
TypeNameDescription
System.StringmessageUTF8 string

SendRpc<T>(T)​

Send rpc to the room as json representation

Declaration
public virtual bool SendRpc<T>(T obj)
Returns​

System.Boolean

Parameters​
TypeNameDescription
<T>objdata to serialize
Type Parameters​
NameDescription
Ttype

SendRpc(string)​

Send raw rpc to the room

Declaration
public NativeBindings.OdinError SendRpc(string rpc)
Returns​

OdinNative.Core.Imports.NativeBindings.OdinError

Parameters​
TypeNameDescription
System.Stringrpcjson representation string

SendAudio(float[], bool)​

Push the samples to all OdinNative.Wrapper.Room.Room.Encoders for pipeline processing and pop the result as datagrams to the server

Declaration
public virtual void SendAudio(float[] samples, bool isSilent = false)
Parameters​
TypeNameDescription
System.Single[]samplesAudio data
System.BooleanisSilentflag these samples as silence

SendAudio(float[], ulong, bool)​

Push the samples to the input media for pipeline processing and pop the result as datagram to the server

Declaration
public virtual bool SendAudio(float[] samples, ulong mediaId, bool isSilent = false)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.Single[]samplesAudio data
System.UInt64mediaIdinput media id
System.BooleanisSilentflag these samples as silence

SendAudio(float[], MediaEncoder)​

Push the samples to the input media for pipeline processing and pop the result as datagram to the server

Declaration
public virtual bool SendAudio(float[] samples, MediaEncoder encoder)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.Single[]samplesAudio data
OdinNative.Wrapper.MediaEncoderencoderinput media

SendAudio(float[], MediaEncoder, bool)​

Push the samples to the input media for pipeline processing and pop the result as datagram to the server

Declaration
public virtual bool SendAudio(float[] samples, MediaEncoder encoder, bool isSilent)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.Single[]samplesAudio data
OdinNative.Wrapper.MediaEncoderencoderinput media
System.BooleanisSilentflag these samples as silence

SendEncoderAudio(ushort)​

Pop all samples from the input media by id and send them to the server

Declaration
public virtual bool SendEncoderAudio(ushort mediaId)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
System.UInt16mediaIdinput media id

SendEncoderAudio(MediaEncoder)​

Pop all samples from the input media and send them to the server

Declaration
public virtual bool SendEncoderAudio(MediaEncoder encoder)
Returns​

System.Boolean: true on success or false

Parameters​
TypeNameDescription
OdinNative.Wrapper.MediaEncoderencoderinput media

SendDatagram(byte[])​

Send audio to the server

Declaration
protected virtual NativeBindings.OdinError SendDatagram(byte[] datagram)
Returns​

OdinNative.Core.Imports.NativeBindings.OdinError: OdinNative.Core.Imports.NativeBindings.OdinError.ODIN_ERROR_SUCCESS or error

Parameters​
TypeNameDescription
System.Byte[]datagramencoder datagram

AddSocket(OdinSocketKind, uint, int, int)​

Declaration
public virtual Socket AddSocket(NativeBindings.OdinSocketKind type, uint peerId, int label = 0, int priority = 0)
Returns​

OdinNative.Wrapper.Socket.Socket

Parameters​
TypeName
OdinNative.Core.Imports.NativeBindings.OdinSocketKindtype
System.UInt32peerId
System.Int32label
System.Int32priority

GetSocket(ulong)​

Declaration
public virtual Socket GetSocket(ulong Id)
Returns​

OdinNative.Wrapper.Socket.Socket

Parameters​
TypeName
System.UInt64Id

GetOrAddSocket(uint, OdinSocketKind, uint, int, int)​

Declaration
[Obsolete("Custom uint keys never matched the native socket callback lookup; use AddSocket and keep the returned socket - sockets are keyed by their native id, so this compatibility shim opens a new socket per call")]
public virtual Socket GetOrAddSocket(uint Id, NativeBindings.OdinSocketKind type, uint peerId, int label = 0, int priority = 0)
Returns​

OdinNative.Wrapper.Socket.Socket

Parameters​
TypeName
System.UInt32Id
OdinNative.Core.Imports.NativeBindings.OdinSocketKindtype
System.UInt32peerId
System.Int32label
System.Int32priority

RemoveSocket(ulong, bool)​

Declaration
public virtual Socket RemoveSocket(ulong Id, bool close = false)
Returns​

OdinNative.Wrapper.Socket.Socket

Parameters​
TypeName
System.UInt64Id
System.Booleanclose

SendLoopbackRpc(string)​

Send client side rpc message

Declaration
protected virtual NativeBindings.OdinError SendLoopbackRpc(string rpc)
Returns​

OdinNative.Core.Imports.NativeBindings.OdinError: OdinNative.Core.Imports.NativeBindings.OdinError.ODIN_ERROR_SUCCESS or error

Parameters​
TypeNameDescription
System.Stringrpcjson string

Close()​

Close the native room. (native dispose)

Declaration
public void Close()

Dispose(bool)​

On dispose will free the room and all associated data

Declaration
protected virtual void Dispose(bool disposing)
Parameters​
TypeName
System.Booleandisposing

~Room()​

Finalizer

Declaration
protected ~Room()

Dispose()​

Requests close, then frees resources after Closed or a timeout and after active callbacks exit.

Declaration
public void Dispose()

Events​

OnDatagram​

Call on audio data

Declaration
public event EventHandler<DatagramEventArgs> OnDatagram
Event Type​

System.EventHandler<OdinNative.Wrapper.Room.DatagramEventArgs>

OnRpc​

Call on rpc data

Declaration
public event EventHandler<RpcEventArgs> OnRpc
Event Type​

System.EventHandler<OdinNative.Wrapper.Room.RpcEventArgs>

OnSocket​

Call on socket data

Declaration
public event EventHandler<SocketMessageEventArgs> OnSocket
Event Type​

System.EventHandler<OdinNative.Wrapper.Socket.SocketMessageEventArgs>

OnRoomStatusChanged​

Odin connection status

Declaration
public event OnRoomStatusChangedDelegate OnRoomStatusChanged
Event Type​

OdinNative.Wrapper.OnRoomStatusChangedDelegate

OnRoomJoined​

Odin room joined

Declaration
public event OnRoomJoinedDelegate OnRoomJoined
Event Type​

OdinNative.Wrapper.OnRoomJoinedDelegate

OnRoomLeft​

Odin room left

Declaration
public event OnRoomLeftDelegate OnRoomLeft
Event Type​

OdinNative.Wrapper.OnRoomLeftDelegate

OnPeerJoined​

Odin peer joined

Declaration
public event OnPeerJoinedDelegate OnPeerJoined
Event Type​

OdinNative.Wrapper.OnPeerJoinedDelegate

OnPeerLeft​

A remote peer left, or was removed locally when this session ended.

Declaration
public event OnPeerLeftDelegate OnPeerLeft
Event Type​

OdinNative.Wrapper.OnPeerLeftDelegate

OnPeerChanged​

Odin peer changed

Declaration
public event OnPeerChangedDelegate OnPeerChanged
Event Type​

OdinNative.Wrapper.OnPeerChangedDelegate

OnMessageReceived​

Odin room received message

Declaration
public event OnMessageReceivedDelegate OnMessageReceived
Event Type​

OdinNative.Wrapper.OnMessageReceivedDelegate

__OnExtraDestroyDelegate​

Declaration
public event EventHandler<nint> __OnExtraDestroyDelegate
Event Type​

System.EventHandler<System.IntPtr>

Implements​