| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| 0.15.17 source code.tar.gz | 2024-04-26 | 340.2 kB | |
| 0.15.17 source code.zip | 2024-04-26 | 403.8 kB | |
| README.md | 2024-04-26 | 1.6 kB | |
| Totals: 3 Items | 745.5 kB | 1 | |
Maintenance release
Improved how “stale” rooms are cleared when using multiple processes:
The Problem
On previous versions, whenever a new process starts up, all existing rooms would be "health-checked", and removed in cause of failure - one by one. Depending on the number of rooms available, this could cause stress on Redis, and end up clearing rooms that shouldn't be cleared.
The Solution
Now, rather than "health-checking" all the rooms, each process is "health-checked" instead. Then, in case of failure, rooms are cleared from the cache in batches, instead of one-by-one.
Also, now whenever a user tries to “join or create” and a “stale” room is found, the remote process is immediately health-checked and the “join or create” is re-tried. When this happens, the request will take more time to complete, but it won’t result in an error to join. (previously, the {roomId} is already full error used to appear in such scenario!)
Internal changes
- Setting the
autoDiposeproperty will now reset the auto-dispose timeout. https://github.com/colyseus/colyseus/commit/d3ff4a537b5721c64c43aad4085dac6b4d51c348 - Fixed global stats counter during
room.disconnect()and early “leaves” (https://github.com/colyseus/colyseus/pull/719/) room.disconnect()returns a resolved promise if room is already disposingpresence.hdel()now returns abooleanif successful or not- Added
driver.cleanup(processId)method to remove cached rooms byprocessId devModebug fix: preventroomHistory.clients is not iterableerror