Tinode Instant Messaging Server
frank. Password is
<login>123, e.g. login for
alice123. Android demo is mostly stable and functional. See screenshots below.
XMPP is a mature specification with support for a very broad spectrum of use cases developed long before mobile became important. As a result most (all?) known XMPP servers are difficult to adapt for the most common use case of a few people messaging each other from mobile devices. Tinode is an attempt to build a modern replacement for XMPP/Jabber focused on a narrow use case of instant messaging between humans with emphasis on mobile communication.
- One-on-one messaging.
- Groups (topics) with up to 16 members where every member's access permissions are managed individually.
- Topic access control with permissions for various actions.
- Server-generated presence notifications for people, topics.
- Basic sharded clustering.
- Persistent message store, paginated message history.
- Android Java bindings (dependencies: jackson, nv-websocket-client)
- Websocket transport.
- JSON wire protocol.
- User search/discovery.
- Message delivery status: server-generated delivery to server, client-generated received and read notifications; typing notifications.
- Basic support for client-side message caching.
- Ability to block unwanted communication server-side.
- Compile-time custom authentication support.
- iOS client bindings.
- Mobile push notification hooks.
- Support for long polling (currently exists but broken).
- Groups (topics) with unlimited number of members with bearer token access control.
- Failover/hot standby/replication.
- Different levels of message persistence (from strict persistence to store until delivered to purely ephemeral messaging).
- Support for binary wire protocol.
- Anonymous users.
- Support for other SQL and NoSQL backends.