- PHP >= 7.4 | 8.0
- Laravel >= 8.42
SubstituteBindings::classroute model binding enabled in your API / WEB middleware groups.
- Configure your laravel apps broadcast driver, and set up your own websocket implementation, should you choose to listen in on our realtime broadcast.
- Realtime messaging between multiple models, such as a User, Admin, and a Teacher model.
- RESTful API, allowing you to create your own UI or connect to your mobile app.
- Support for morph maps on your provider models. See: Morph Maps
- Private and group threads.
- Permissions per participant within a group thread.
- Send image, document, audio, and video messages.
- Message reactions, replies, edits, and deletion.
- Group thread chat-bots. Bot addon
- Friends, Search, and Online status systems.
- Provider avatars, group thread avatars, and bot avatars.
- Underlying calling system you can extend.
- Group thread invitation links (like discord).
- All actions are protected behind policies.
- Scheduled commands for automated cleanup and checks.
- Queued jobs fired from our event subscribers.
- Most features can be toggled at runtime using our
MessengerComposerfacade allows you to have easy access to our core actions anywhere within your own app, such as sending messages, images, reactions, and more.
- You can implement or extend your own
FriendDriver, simply by binding your classes into the container.
- Optional extra payload when sending messages to allow custom json to be stored with the message.
Upcoming for v2
- Temporary Ephemeral conversations.
- Improved API pagination / filters.
- Condense attachment routes.
- Possible extraction of friends system.
- Better image manipulation / saving of multiple sizes.
- Encryption of messages (E2E is the long term goal).
- Read through our
messenger.phpconfig file before migrating!
- This is a pure backend driven package providing an API to interact with, thus no web UI or websocket implementation will be setup for you.
- Calling is disabled by default. You are responsible for implementing your own media server or connecting to a 3rd party service.
$ composer require rtippin/messenger
To complete our setup, please refer to the installation documentation listed below:
Addons / Demo
- Messenger Bots - Pre-made bots you can register within our core.
- Messenger Faker - Adds commands useful in development environments to mock/seed realtime events and messages.
- Messenger Web UI - Ready-made web routes and publishable views / assets, including default images.
- Demo App - Our demo laravel app with this core package installed, including a Live Demo.
Credits - Richard Tippin
If you discover any security related issues, please email author instead of using the issue tracker.