True when connected to a room via a regular url, otherwise (when using a view only url) false indicating that the user should not be able to modify the scene
The connection id of the local user - it is given by the networking backend and can not be changed
Latency to currently connected backend server
The name of the room the user is currently connected to
The view id of the room the user is currently connected to.
The current server url that the networking backend is connected to (e.g. the url of the websocket server)
Checks if Needle Engine networking is connected to a websocket. Note that this is not equal to being connected to a room. If you want to check if Needle Engine is connected to a networking room use the {@link isInRoom} property.
true if connected to the websocket.
Returns true if the networking backend is in debug mode.
To see all networking messages in the console use ?debugnet in the url
True if connected to a networked room. Use the joinRoom function or a SyncedRoom component
Experimental: networking via peerjs
Use to start listening to networking events.
To unsubscribe from events use the {@link stopListen} method.
See the example below for typical usage:
// Make sure to unsubscribe from events when the component is disabled
export class MyComponent extends Behaviour {
onEnable() {
this.connection.beginListen("joined-room", this.onJoinedRoom)
}
onDisable() {
this.connection.stopListen("joined-room", this.onJoinedRoom)
}
onJoinedRoom = () => {
console.log("I joined a networked room")
}
}
Use to start listening to networking binary events
Used to connect to the networking server
Optionalurl: stringOptional url to connect to. If not provided, it will use the url from the registered INetworkingWebsocketUrlProvider or the default backend networking url. If you want to change the url after connecting, you need to disconnect first and then connect again with the new url.
Disconnect from the networking backend + reset internal state
Returns a url that can be shared with others to view the current room in view only mode.
This is useful for sharing a room with others without allowing them to modify the scene.
Use connection.allowEditing to check if the current room is in view only mode.
Joins a networked room. If you don't want to manage a connection yourself you can use a {@link SyncedRoom} component as well
Use to leave a room that you are currently connected to (use leaveRoom() to disconnect from the currently active room but you can also specify a room name)
Use to override the networking server backend url.
This is what the {@link Networking} component uses to modify the backend url.
Send a message to the networking backend - it will broadcasted to all connected users in the same room by default
Send a binary message to the server (broadcasted to all connected users)
Deletes the network state for a specific object on the server.
This removes the object's state from the room, preventing it from being sent to newly joining users.
The unique identifier of the object whose state should be deleted
Use to delete all state in the currently connected room on the server
A ping is sent to the server at a regular interval while the browser tab is active. This method can be used to send additional ping messages when needed so that the user doesn't get disconnected from the networking backend
Use to stop listening to networking events
To subscribe to events use the {@link beginListen} method.
See the example below for typical usage:
// Make sure to unsubscribe from events when the component is disabled
export class MyComponent extends Behaviour {
onEnable() {
this.connection.beginListen("joined-room", this.onJoinedRoom)
}
onDisable() {
this.connection.stopListen("joined-room", this.onJoinedRoom)
}
onJoinedRoom = () => {
console.log("I joined a networked room")
}
}
Use to stop listening to networking binary events
Returns the cached network state for a given GUID.
The state is stored locally whenever network updates are received for that object.
The unique identifier of the object whose state you want to retrieve
The cached state object, or null if no state exists for this GUID
Returns true if a user with the given connectionId is in the room
Returns a list of all user ids in the current room
Main class for multiuser networking. Access via
this.context.connectionfrom any component.About GUIDs: In Needle Engine networking, GUIDs (Globally Unique Identifiers) are used to identify objects and components across the network.
Every GameObject and Component has a unique
guidproperty that remains consistent across all clients.GUIDs are automatically assigned (e.g. during export from Unity/Blender) and are essential for:
When working with networking, you'll typically use
this.guidto identify your component orthis.gameObject.guidfor the GameObject.Example: Joining a room
Example: Listening to events
Example: Sending data
Example: Using GUIDs for object identification
See
Link
https://engine.needle.tools/docs/how-to-guides/networking/