A Meteor package that tracks user connection state, online presence, and client-side inactivity.
Meteor User Status is a package for Meteor.js applications that monitors and tracks user connection states, online presence, and client-side inactivity. It solves the problem of knowing which users are currently online, idle, or offline in real-time, providing essential data for features like user lists, activity indicators, and session management.
Meteor developers building real-time applications that require user presence features, such as chat apps, collaborative tools, or dashboards showing active users.
Developers choose Meteor User Status because it integrates seamlessly with Meteor's reactive data system, offers easy setup for idle tracking and connection monitoring, and provides a robust API for customizing presence logic without reinventing the wheel.
Track user connection state and inactivity in Meteor.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically updates the Meteor.users collection with online/idle status and hooks into Meteor's reactive data system, enabling easy publications and template helpers as shown in the basic usage examples.
Monitors client-side events like clicks and keypresses with configurable thresholds, providing reactive variables such as UserStatus.isIdle for immediate UI updates without custom polling logic.
Logs IP addresses, user agents, and login times for each active connection in UserStatus.connections, useful for analytics, security audits, and debugging user sessions.
Offers an EventEmitter for listening to connection login, logout, idle, and active events, allowing developers to trigger custom actions like notifications or cleanup without manual state checks.
Requires setting the HTTP_FORWARDED_COUNT environment variable and ensuring proxy headers are forwarded to capture accurate client IP addresses, adding deployment complexity that the README admits is necessary but often overlooked.
The UserStatus.connections collection is in-memory, so all connection-specific data like IP addresses and user agents is lost on server restart, limiting historical tracking and making it unsuitable for audit logs.
Tightly coupled with Meteor's architecture, making it impossible to use in hybrid or migrating applications, and offering no support for modern frameworks like Next.js or Svelte without a full rewrite.