^7.4 || ^8.0
SubstituteBindings::class route 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.
- Private thread approval when the two participants are not friends.
- Add participants in a group thread from your friends list.
- Permissions per participant within a group thread.
- Send image, document, audio, and video messages.
- Message reactions, replies, edits, and deletion.
- Group thread chat-bots. Ready-made bots
- 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
MessengerComposer facade 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.
- Owner relationships returns a
Ghost Profile when not found (null-object pattern).
- Private threads auto-lock when the recipient is not found (deleted).
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).
- Translations for internal messages.
- Read through our
messenger.php config 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.
If you discover any security related issues, please email author instead of using the issue tracker.