Room API (Client-side)¶
Properties¶
state: any
¶
The current room's state. This variable is always synched with the latest
state
from the server-side. To listen for updates on the whole state, see
onStateChange
event.
sessionId: string
¶
Unique session identifier.
This property matches the client.sessionId
from the server-side.
id: string
¶
The unique idenfitier of the room. You can share this id with other clients in order to allow them to connect directly to this room.
// get `roomId` from the query string
let roomId = location.href.match(/roomId=([a-zA-Z0-9\-_]+)/)[1];
// connect the client directly into a specific room id
let room = client.join(roomId);
Warning
If you're looking for the unique identifier of the client, use client.id
instead.
name: string
¶
Name of the room handler. Ex: "battle"
.
Methods¶
listen (path: string, callback: Function, immediate?: boolean): Listener
¶
Listen to state changes applied in the client. Returns a Listener
instance, that can be removed through removeListener()
method.
The listen()
method is only available for Fossil Delta
See Fossil Delta state handling for more details.
removeListener (listener: Listener)
¶
Removes a listener registered through listen()
method.
The removeListener()
method is only available for Fossil Delta
See Fossil Delta state handling for more details.
send (data)
¶
Send message to the room handler.
room.send({ move: "left" });
room.Send(new { move = "left" });
room:send({ move = "left" })
room.send({ move: "left" });
Use Room#onMessage() from the server-side to read the message.
leave ()
¶
Disconnect from the room.
room.leave();
room.Leave();
room:leave()
room.leave();
Tip
Use Room#onLeave() to handle the disconnection from the server-side.
removeAllListeners()
¶
Remove all event and data listeners.
Events¶
onStateChange¶
This event is triggered when the server updates its state.
room.onStateChange.addOnce(function(state) {
console.log("this is the first room state!", state);
});
room.onStateChange.add(function(state) {
console.log("the room state has been updated:", state);
});
room.OnStateChange += (object sender, RoomUpdateEventArgs e) => {
if (e.isFirstState) {
Debug.Log ("this is the first room state!");
}
Debug.Log ("the room state has been updated");
}
room:on("statechange", function(state)
print("new state:", state)
end)
room.onStateChange = function(state) {
trace("new state:" + Std.string(state));
};
onMessage¶
This event is triggered when the server sends a message directly to the client.
room.onMessage.add(function(message) {
console.log("server just sent this message:");
console.log(message);
});
room.OnMessage += (object sender, MessageEventArgs e) => {
Debug.Log ("server just sent this message:");
Debug.Log(e.message);
}
room:on("message", function(message)
print("server just sent this message:")
print(message)
end)
room.onMessage = function(message) {
trace("server just sent this message:");
trace(Std.string(message));
};
Tip
To send a message from the server directly to the clients you'll need to use either room.send() or room.broadcast()
onJoin¶
This event is triggered when the client successfuly joins the room.
room.onJoin.add(function() {
console.log("client joined successfully");
});
room.OnJoin += (object sender, EventArgs e) => {
Debug.Log ("client joined successfully");
}
room:on("join", function()
print("client joined successfully")
end)
room.onJoin = function () {
trace("client joined successfully");
};
onLeave¶
This event is triggered when the client leave the room.
room.onLeave.add(function() {
console.log("client left the room");
});
room.OnLeave += (object sender, EventArgs e) => {
Debug.Log ("client left the room");
}
room:on("leave", function()
print("client left the room")
end)
room.onLeave = function () {
trace("client left the room");
};
onError¶
This event is triggered when some error occurs in the room handler.
room.onError.add(function(err) {
console.log("oops, error ocurred:");
console.log(err);
});
room.OnError += (object sender, EventArgs e) => {
Debug.Log ("oops, error ocurred:");
Debug.Log(e);
}
room:on("error", function()
print("oops, error ocurred:")
print(e)
end)
room.onError = function(err) {
trace("oops, error ocurred:");
trace(err);
};